是否有可能在Azure搜索中使用Dismax查询解析器之类的功能?例如:查询字段(qf)、短语字段(pf)、boost函数或boost查询。
我知道目前Azure搜索支持lucene查询语法。想要检查是否有一些其他的术语/解析器可用于等效的功能,或者如果没有,那么AzureSearch团队正在寻求在未来的时间内合并它。
这里是DismaxQueryParser的链接查询https://cwiki.apache.org/confluence/display/solr/The + DisMax + +解析器
谢谢
Azure Search不支持DisMax查询。根据您对DisMax查询的需求,您可以通过其他方式获得类似的结果。
从召回的角度来看,DisMax查询与布尔查询相同,因为在相同的条件下,DisMax查询都认为文档是匹配的。不同之处在于DisMax通过获取最高的单个匹配(加上一个可选的平局打破)来对结果匹配进行评分,而布尔查询默认情况下会将分数相加。
如果你需要从DisMax是简单的语法与引号,+/-等,然后使用queryType=simple(默认)将给你大部分的Azure搜索,除了"~"(模糊/slop)。
如果你需要的是实际的最大分离的比赛得分方式,那么今天是不可行的。
至于你提到的其他特性:
- 查询字段:在Azure搜索查询中有一个"searchFields"选项可以做到这一点。
- 短语字段:您可以手动(虽然痛苦)通过查询单个术语,然后在引号中查询术语组,并使用不同的增强(您需要使用完整的lucene查询,简单的查询不会这样做,因为单个术语/组增强)来实现这一点。
- Boost函数/查询:在Azure搜索中没有1:1的映射,但是评分配置文件允许你用它来建模许多场景。
关于searchFields和其他查询选项的详细信息:https://learn.microsoft.com/en-us/rest/api/searchservice/search-documents
有关评分配置文件的详细信息:https://learn.microsoft.com/en-us/rest/api/searchservice/add-scoring-profiles-to-a-search-index