我正在使用“Azure认知搜索”构建一个语义搜索引擎。我用python编程上传了我的excel数据集。
要搜索和运行查询,Excel数据集中的每个字段/列都可以与“可搜索”,“可排序”,“可检索”,“可过滤”和“可分面”等功能相关联。
我尝试为数据集中的字段/列选择这些功能,但它们以某种方式被禁用。只有“可检索”选项是可选的。我尝试了编程和手动。这两种方法都不起作用。
注意:我使用的是免费试用版。不确定这是否是导致问题的原因,但文档说,“可检索”对索引大小没有影响。“可过滤”、“可排序”、“可分面”消耗更多存储”。此外,我的数据非常小,只有8行和10列,大部分是数字和单文字。
我的python代码来选择功能:
import pandas as pd
import json
from azure.search.documents.indexes.models import SimpleField, SearchFieldDataType
import os
from azure.core.credentials import AzureKeyCredential
from azure.search.documents.indexes import SearchIndexClient
from azure.search.documents import SearchClient
df_azure=pd.read_excel("C:/stats.xlsx")
endpoint="https://azure-service.search.windows.net"
key="q5EMEa0at5VJRvwTVlkqWhvHSKs"
SearchIndexClient=SearchIndexClient(endpoint, AzureKeyCredential(key))
indexName="indexes-azure"
from azure.search.documents.indexes.models import (
ComplexField,
CorsOptions,
SearchIndex,
ScoringProfile,
SearchFieldDataType,
SimpleField,
SearchableField
)
fields=[
SearchableField(name="rule_name", type=SearchFieldDataType.String, facetable=True, filterable=True, sortable=True),
SearchableField(name="rule_description", type=SearchFieldDataType.String, facetable=True, filterable=True, sortable=True),
SearchableField(name="Date_of_execution", type=SearchFieldDataType.String, facetable=True, filterable=True, sortable=True),
SearchableField(name="Data_Source", type=SearchFieldDataType.String, facetable=True, filterable=True, sortable=True),
SearchableField(name="Total_no_of_records", type=SearchFieldDataType.String, facetable=True, filterable=True, sortable=True),
SearchableField(name="No_of_failed_records", type=SearchFieldDataType.String, facetable=True, filterable=True, sortable=True)
]
indexConfig= SearchIndex(name=indexName,
fields=fields,
scoring_profiles=[],
cors_options= CorsOptions(allowed_origins=["*"], max_age_in_seconds=60))
index=SearchIndexClient.create_index(indexConfig)
SearchClient = SearchClient(endpoint, indexName, AzureKeyCredential(key))
result = SearchClient.upload_documents(documents=DOCUMENTS)
print("DOCUMENT upload successful: {}".format(result[0].succeeded))
Output: DOCUMENT upload successful: True
1条答案
按热度按时间yxyvkwin1#
您可以在创建新索引时启用所有功能,包括可过滤,搜索和可面对。
使用
standard
和free-tier
资源中提供的代码成功创建了索引,并启用了所有必需的功能。对于现有的索引,您可以在添加新字段时更改可检索字段和所有字段。
有关更多详细信息,请查看此documentation.