如何使solr短语搜索区分单词

时间:2016-08-02 19:09:21

标签: solr

假设我们有一个查询“主页内容”。 并且有两个记录,其title字段分别是(1)“主页内容”和(2)“主页内容”。

如何配置solr以使(1)的匹配分数高于给定查询的(2)。

(我知道在这个简化的例子中使用edismax是没有意义的。但我希望问题解决者能够意识到我在实际情况下使用edismax这一事实。)

这是我目前的(非常简化的)配置:

schema.xml中

<field name="title" type="text_general" indexed="true" stored="true"/>

solrconfig.xml中

defType='dismax'
qf="title^2"

2 个答案:

答案 0 :(得分:1)

另一种方法是使用pf参数。如果条款更接近,它会将文档排名更高。

此外,您可以使用ps参数
(Phrase Slop)为了指定两个术语可以分开以匹配相关短语的位置数。

Here是文档的链接。

答案 1 :(得分:0)

您是否尝试过提升组件。

对于某些查询字符串,您可以使用elevate.xml文件中的docID指定哪个doc位于结果顶部,该文件位于conf文件夹中。

示例:

<query text="Homepage"> <doc id="docID" /> <!-- put the first doc ID--> <doc id="docID" exclude="true" /> <!-- exclude this doc --> </query>

甚至认为如果doc匹配指定exclude = true可以消除结果中的doc。