AzureSearch:Dismax 查询解析器功能

AzureSearch : Dismax query parser capabilities

是否有可能在 Azure 搜索中使用类似 Dismax 查询解析器的功能。例如查询字段 (qf)、短语字段 (pf)、增强函数或增强查询。

我知道目前 Azure 搜索支持 lucene 查询语法。想要检查是否有其他术语/解析器可用于等效功能,或者如果没有,那么 AzureSearch 团队是否希望在未来的时间将其合并。

这里是link参考DismaxQueryParser https://cwiki.apache.org/confluence/display/solr/The+DisMax+Query+Parser

谢谢

Azure 搜索不支持 DisMax 查询。根据您对 DisMax 查询的需求,您可以通过其他方式获得类似的结果。

从召回的角度来看,DisMax 查询与布尔查询相同,因为对于析取,两者都认为文档在相同条件下匹配。不同之处在于,DisMax 通过取最高的个人匹配(加上可选的决胜局)对结果匹配进行评分,而布尔查询默认将分数相加。

如果您需要 DisMax 的是带有引号、+/- 等的简单语法,那么使用 queryType=simple(默认)将为您提供 Azure 搜索中的大部分内容,“~”除外(fuzzy/slop)。

如果您需要的是实际的析取最大得分匹配方式,那么今天是行不通的。

至于您提到的其他功能:

  • 查询字段:Azure 搜索查询中有一个 "searchFields" 选项可以做到这一点。
  • 短语字段:您可以通过查询单个术语然后查询引号中的术语组来手动(尽管很痛苦)实现这一点,并使用不同的提升(您需要为此使用完整的 lucene 查询,简单的查询不会因为个人 term/group 提升)。
  • 提升 function/query:在 Azure 搜索中没有任何内容可以映射 1:1 到此,但评分配置文件允许您对您将使用此建模的许多场景进行建模。

有关搜索字段和其他查询选项的详细信息: https://docs.microsoft.com/en-us/rest/api/searchservice/search-documents

有关评分资料的详细信息: https://docs.microsoft.com/en-us/rest/api/searchservice/add-scoring-profiles-to-a-search-index