Solr相关性搜索提升



我使用的是Solr 5.0.0,我在相关性增强中有一个问题:

如果我搜索类似laptop table的单词,有没有任何方法可以将搜索结果提升到类似withwithout等单词之前。

我使用了这个查询:

? defType = dismax 
    & q = foo bar 
    & bq = (*:* -by)^999  

但是,这会对那些有单词bywith等的文档产生负面影响。我该如何避免这个问题?

例如,如果我搜索laptop table,那么通过上面的查询,结果DGB Cooling Laptop Table by GDB不会提升。

我只需要在某些单词(如bywith等(之前增加搜索单词。有可能吗?

在您的示例中,您希望...laptop table by...结果的得分高于没有bylaptop table结果。并且您希望完全省略...by laptop table...

让我们称之为:

  • Q1:...laptop table by...(让我们为练习增加2(
  • Q2:...laptop table...(我们一点也不升压(
  • Q3:...by laptop table...(我们想省略这个(

因此,您在摘要中的查询是:(Q1^2 OR Q2) NOT Q3

dismax解析器可能因为为您做了太多的工作而模糊了您的目标。至少对于这篇文章,您应该考虑使用标准(Lucene(查询解析器:

`q=("laptop table by"^2 OR "laptop table") NOT "by laptop table"`

如果你想允许slop(即查询和'by'或'with'之间的额外单词(并保留如上所述的术语顺序,你应该查看ComplexPhraseQueryParser(Solr 4.8+(Yonik Seeley对此有一篇很好的文章。

然后你可以做这样的事情:

`q=({!complexphrase inOrder=true}"laptop table by"~2^2 OR "laptop table") NOT {!complexphrase inOrder=true}"by laptop table"~2`

相关内容

  • 没有找到相关文章

最新更新