【问题标题】:Making a query to Solr taking into account proximity matching between keywords考虑关键字之间的邻近匹配对 Solr 进行查询
【发布时间】:2018-03-15 19:43:21
【问题描述】:

我有一个关键字列表(+- 六个字),我需要一个考虑到关键字之间的邻近匹配的查询。检索文档不需要有所有的关键词,但是这些关键词越接近的文档相关性越高。

我尝试了text:"word1 word2 word3 word4 word5 word6"~5,但没有检索到任何文件。我认为这是由于大量的关键字以及它们需要接近的原因。

我也试过text:word1 text:word2 text:word3 text:word4 text:word5 text:word6,但是这个查询没有考虑单词之间的邻近匹配。

【问题讨论】:

  • 如果您使用 6 个单词,则在引号中 "word1 word2 word3 word4 word5 word6" 这意味着该字段中所有都是强制性的,并且距离 5 表示与查询中的任何单词的所有单词都不会超过5 字远,如果您不确定,可以增加接近度。
  • @CodeMagic 是的,但是即使其中一个词不在文档中,也有一些方法可以考虑接近度?

标签: solr lucene information-retrieval


【解决方案1】:

尝试增加接近度值 e。 G。 "word1 word2 word3 word4 word5 word6"~15 并将其与其他布尔查询结合起来。所以你得到:

text:("word1 word2 word3 word4 word5 word6"~15 word1 word2 word3 word4 word5 word6)

现在,包含 15 个单词以内的单词的文档的排名应该高于包含任何位置的单词或只有部分单词的文档。

根据您的需要调整邻近值。

【讨论】:

  • 谢谢,对我帮助很大。但是,当其中一个词不在文档中时,邻近性不起作用。某种方式来考虑接近度,即使其中一个词不在文档中?
  • eDismax Parser 有一些选项可以增强单词对或单词三元组。请参阅lucene.apache.org/solr/guide/7_2/… pf2 和 pf3 参数。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-11
  • 2014-02-23
  • 2015-03-13
  • 1970-01-01
相关资源
最近更新 更多