我正在使用 Azure 认知搜索来获取基于 RAG 的解决方案。给出“苹果、橙子和柠檬供应商”等搜索关键字。是供应这三者中任何一个的返回供应商,而不是供应所有这三个的供应商。
基本上如何将搜索逻辑从 OR 更改为 AND。
当前结果:供应苹果或橙子或柠檬的供应商。 我需要:供应苹果、橙子和柠檬的供应商。
我正在浏览文档以更改此方法。将 search_mode 更改为 all “搜索模式=全部”
还尝试过搜索=苹果+橙子
我正在浏览文档以更改此方法。将 search_mode 更改为 all “搜索模式=全部”
还尝试过搜索=苹果+橙子
与“苹果”和“橙子”类似
数据不是表格或小文件。详细信息散布在文件中。但关键词是独一无二的。
searchMode=all 设置应该可以解决此问题,因为它将搜索词之间的默认行为从“OR”逻辑更改为“AND”逻辑。
如果您正在寻找确切的短语或特定的单词组合,您还可以在短语两边使用引号。例如,搜索=“苹果”AND“橙子”AND“柠檬”。
我创建了一个索引并使用了以下示例数据:
documents = {
"value": [
{"@search.action": "upload", "VendorId": "1", "VendorName": "Vendor 1", "Fruits": ["Apple", "Orange", "Lemon"]},
{"@search.action": "upload", "VendorId": "2", "VendorName": "Vendor 2", "Fruits": ["Apple", "Banana"]},
{"@search.action": "upload", "VendorId": "3", "VendorName": "Vendor 3", "Fruits": ["Orange", "Lemon"]},
]
}
对于您的具体情况,您可以使用
AND
运算符来确保必须满足所有条件,并且如果您使用简单的查询语法并希望优化搜索以提高精度而不是召回率,请记住设置 searchMode=all
。
通过以下搜索查询,我能够获得所需的结果:
query = {
"search": "Apple AND Banana",
"searchMode": "all",
"count": True,
"top": 5,
"queryType":"full"
}
输出: