Flask应用中使用Azure Cognitive Search语义搜索遇参数错误
问题解决方法
原因分析
你使用的azure.search.documents 11.3.0版本中,语义搜索相关参数(query_type、query_language等)不能直接作为search()方法的顶层关键字参数传入,而是需要封装到SemanticSearchParameters对象中,再通过semantic_search_parameters参数传递给search()方法。直接传递顶层参数会导致SDK内部将这些参数误传给底层的Session.request,从而触发错误。
具体修复步骤
- 导入
SemanticSearchParameters类:
from azure.search.documents.models import SemanticSearchParameters
- 重构搜索调用代码:
# 封装语义搜索参数 semantic_params = SemanticSearchParameters( query_type="semantic", query_language="en-us", query_speller="lexicon", semantic_configuration_name="xxx" ) # 调用search方法时传入封装后的参数 results = search_client.search( search_text="你的搜索关键词", semantic_search_parameters=semantic_params )
额外说明
如果后续将SDK升级到11.4.0及以上版本,直接在search()方法顶层传递语义参数的方式会被支持,但11.3.0版本必须使用上述封装参数的方式。
内容的提问来源于stack exchange,提问作者Swasti
相关产品推荐
相关产品推荐

