Azure 搜索 - 作为第一个或单个结果完全匹配

标签 azure lucene azure-cognitive-search

我正在使用基于丰富的 Lucene 查询解析器语法的 Azure 搜索。我将“~1”定义为距离符号的附加参数)。但我面临的问题是,即使存在完全匹配,实体也没有排序。 (例如,“blue~1”将返回“blues”、“blue”、“glue”。或者当搜索“P002”等产品 SKU 时,我会得到结果“P003”、“P005”、“P004”、“P002”、“P001”、“P006”) 所以我的问题:是否有某种方法可以定义,具有完全匹配的实体必须位于列表中的第一个,或者是单个搜索结果,即使我使用模糊搜索“~1”?

最佳答案

Lucene Query syntax您可以增强单个子查询,例如: term^2 | term~1 - 这翻译为“查找与编辑距离 1 匹配 'term' 或 'term' 的文档,并将精确匹配的得分相对于模糊匹配高出两倍。

search=blue^2|blue~1&queryType=full

无法保证精确匹配始终位于结果集中的第一位,因为文档分数为 function of term frequency and inverse document frequency 。如果模糊子查询将输入术语扩展为文档语料库中非常独特的术语,您可能需要提高提升因子(在我的示例中为 2)。一般来说,依靠相关性分数进行排序并不是一个实际的想法。请查看我在以下帖子中的回答以获取更多信息:Azure Search scoring

请告诉我这是否有帮助

关于Azure 搜索 - 作为第一个或单个结果完全匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39771652/

相关文章:

azure 搜索。如果我有很多面怎么办

Azure 搜索和破折号

azure - 如何使用 Azure 认知搜索搜索字符串的一部分

Azure 数据资源管理器基于 2 列创建新列

Java Lucene IndexReader 无法正常工作

azure - 如何创建新的微软组织?

java - 需要帮助重新构建和优化大型 solr 索引

c# - Lucene 和正斜杠

asp.net - Azure 云服务辅助角色有哪些用例?

Azure 替换管道发布任务中 Asp.net MVC 服务模型终结点的 token