如何形成具有多个字段和不同字段的不同最小匹配和提升的 Solr edismax 查询?

How to form a Solr edismax query with mutiple fields and different minimum match and boosts for different fields?

我有一个 Solr 索引,所有文档都包含三个字段 - 名称、地址和 other_addresses。我想搜索姓名为 'Tom Cruise' 且地址为“3rd Avenue 23rd Floor New York, NY 10016”的人。

现在我只想在具有特定提升值和最小匹配值的名称字段中搜索名称。此外,需要在 address 和 other_addresses 中使用不同的 mm 和 boost 值搜索地址。

有人可以帮助我以任何其他方式为 Solr 编写 edismax 查询吗?

我正在做类似的事情:

select?debugQuery=on&defType=edismax&fl=*%20score&mm=70%25&q=name%3A(Rita%20Suman%20Shinde%20Near)%20address%3A(Gunjan%20Talkies%20Yerwada%20Pune)%20other_addresses%3A(Gunjan%20Talkies%20Yerwada%20Pune)&qf=name%20other_addresses%20address&stopwords=true

但不知道如何给出不同的毫米值。

您可以使用 LocalParams 将多个 dismax 查询组合成一个,并且每个子查询都可以有自己的 dismax 参数。例如:

q={!dismax qf=name mm=2 v=$q1}^2.0 {!dismax qf=address1 mm=4 v=$q2}^1.5 {!dismax qf=other_address mm=4 v=$q2}^1.0
q1=Tom Cruise
q2=3rd Avenue 23rd Floor New York, NY 10016