lucene - 无法理解solr行为(如果我在查询中更改单词的位置,则会返回不同的结果)

时间:2016-08-05 13:53:34

标签: solr lucene

我需要选择所有包含单词“6”和“buldings”的记录。我正在向我的solr创建这样的查询:

/select?q=name:2+AND+buildings

solr给我返回128个结果。大多数结果都有类似“126栋”或“建筑物7260”的东西,但我只需要带有“6”和“建筑物”字样的记录。

但如果我在查询中更改单词的位置:

/select?q=name:buildings+AND+2

它给我带来了另一个结果 - 正确的结果!这次没有奇怪的记录,单词“7260”或“126”只记录我真正需要的单词“6”和“建筑物”。

所以请sombody向我解释为什么solr在第一种情况下返回如此奇怪的结果,因为我创建查询而不考虑solr可以返回不同的结果,如果单词的位置被更改。并且我如何指向solr只搜索“6”如果它在单词之前?

任何有用的帮助。

1 个答案:

答案 0 :(得分:1)

name:buildings AND 2name:2 AND buildings不同,因为字段(“name”)仅应用于查询中的第一个字词。另一个是在查询解析器的默认字段中搜索。

  • name:buildings AND 2与:name:buildings AND defaultfield:2

  • 相同
  • name:2 AND buildings与:name:2 AND defaultfield:buildings

  • 相同

如果要在“名称”字段中搜索两者,可以使用如下查询:

name:(2 AND buildings)