基于Solr规则的提升

Juh*_*han 7 java solr solrj

我正在使用Solr-5.0.0.我正在寻找一个领域product_name.我需要添加一些规则来获得相关结果.

  1. 如果我搜索一个单词,如果存在完全匹配,则应首先进行.例如:如果我搜索laptop,它应该首先返回精确product_name笔记本电脑.

  2. 如果我搜索多个单词,它应该遵守规则1.并且最少的单词长度距离名称首先出现.例如:如果我搜索dell laptop,它应该首先返回戴尔笔记本电脑戴尔笔记本电脑.

  3. 如果我搜索单词,则不应返回结果包含withwithout单词.例如:在搜索中laptop bag,它不应该给戴尔笔记本电脑带袋戴尔笔记本电脑没有袋子结果.

如何在查询时实现这些基于搜索相关结果的规则?

我的应用程序是在java中,所以赞赏Java答案.

Rom*_*sse 2

首先,您应该使用dismaxedismax查询解析器而不是默认的 ( lucene )。

然后您可以使用不同的参数来提高相关性:

  1. :使用qf来增强您的 Product_name 字段。
  2. :使用pf来增强您的 Product_name 字段,其中 q 参数中的所有术语都显示得很接近。
  3. :使用bq来增强没有出现单词with或单词的文档。看这里。例如 :withoutbq=(*:* -with -without)^999