“Azure认知搜索”-“字段”配置问题

xoshrz7s  于 2023-10-22  发布在  其他
关注(0)|答案(1)|浏览(122)

我正在使用“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
yxyvkwin

yxyvkwin1#

您可以在创建新索引时启用所有功能,包括可过滤,搜索和可面对。
使用standardfree-tier资源中提供的代码成功创建了索引,并启用了所有必需的功能。

对于现有的索引,您可以在添加新字段时更改可检索字段和所有字段。
有关更多详细信息,请查看此documentation.

相关问题