【问题标题】:How to form a Solr edismax query with mutiple fields and different minimum match and boosts for different fields?如何形成具有多个字段和不同最小匹配以及不同字段提升的 Solr dismax 查询?
【发布时间】:2020-01-06 00:38:50
【问题描述】:

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

现在我想只在名称字段中搜索名称,该字段还具有一些特定的提升值和最小匹配值。另外,address 需要在 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

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

【问题讨论】:

标签: search solr lucene full-text-search


【解决方案1】:

您可以使用 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多