如何在Solr中匹配句子的子部分或上半部分

时间:2018-11-28 05:40:32

标签: solr

  • 我已经安装了solr 7.5
  • 使用api索引以下格式的多个数据

    { "id":"doc_21", "contact":[9999999999], "description":"description goes here", "address":"address goes here", "rank":26, "business_id":21, "thumbs_down":1, "keywords":["web designer in New York", " web designer"], "title":"sample title" }

现在,如果我要搜索

q:"keywords:\"best web designer in New York\""

然后我没有任何记录,因为任何记录中都没有 best

但是我想要的是它应该首先与完全匹配的关键字匹配,然后它应该提供较少匹配的记录。例如,如果我使用关键字纽约最佳网页设计师进行搜索,那么solr还必须返回纽约网页设计师,纽约的网站设计师纽约的设计师纽约的

谢谢

1 个答案:

答案 0 :(得分:1)

只要您已在正确标记化的字段类型中索引了内容(默认情况下包含text_general字段类型,并且在无模式模式下自动用于文本字段),Solr会为您完成此操作。

您可以use the mm parameter告诉Solr查询中至少70%的术语必须匹配:

在查询字符串后附加&mm=70%(并使用dismax或edismax查询解析器):

  

百分比

     

70%

     

将匹配子句的最小数量设置为可选子句总数的此百分比。根据百分比计算得出的数字将四舍五入并用作最小值。