典型的 dismax(或 edismax)查询使我们能够用qf(例如:field1,field2^10)和q(例如:'test-query')参数来表达我们的需求。Solr 然后在内部生成一个查询,其形式为:
DisjunctionMaxQuery((field1:test-query | field2:test-query^10))
上述查询中的“析取”是
Disjunct 1 : 'field1:test-query'
Disjunct 2 : 'field2:test-query^10'
上述析取词在查询结构方面是同质的(在每个析取词中只查找 1 个字段。此外,在字段中查看的值是相同的)。
问题 :
有没有办法提供我们自己的分离表达式的自定义列表。例如,我想要以下 2 个析取词
Disjunct 1. +field1:some-value +field2:some-random-value^7.9
Disjunct 2. +field3:another-random-string^10
上述析取项在字段方面是异构的,在这些字段中搜索的值也是异构的。
可能吗 ?如果是,我如何在我的 solr 查询中表达这样的自定义析取词。
================
更新
最大分数查询解析器帮助我解决了我正在寻找的用例。
https://solr.apache.org/guide/8_5/other-parsers.html#max-score-query-parser