当查询词混乱时,Solr 搜索结果会发生变化

Solr search results changes when query terms are jumbled up

我已经用 字段 -

索引了一个文件
  1. 内容(类型:text_general,不可逆:false,索引:true,存储:true)
  2. 类别(类型:text_general,不可逆:false,索引:true,存储:true)
  3. 标题(类型:text_general,不可反转:false,索引:true,存储:true)

带有 catch-all copyfield-

来源:*,
目的地:_text_

现在,当我搜索 Content 字段,查询 - Apple trade 时,我得到 6057 个文档;

但是当我搜索 - 交易 Apple 时,我得到了 5878 个文档。

然而,当在 catch-all 字段上执行相同的搜索时,我得到了两个查询(6057 个文档)的相同结果。

我不理解这里的错误,因为我希望 solr 在 Content 字段上搜索时为两个查询提供相同的结果。

我正在使用-

'Content' 字段的两个查询:

  1. 苹果交易

http://localhost:8983/solr/core_name/select?q=Content%3A%20Apple%20trade

  1. 交易苹果

http://localhost:8983/solr/core_name/select?q=Content%3A%20trade%20Apple

根据您刚刚添加到问题中的内容,并假设 Lucene 查询解析器忽略了 : 之后的 space,查询是 Content:trade <default search field>:Apple - 您不会同时搜索两者Content 字段中的第一项和第二项。

当您交换他们的位置时,您正在搜索 Content:Apple <default search field>:trade

默认配置中的默认搜索字段是 _text_。由于查询不同,您可以假设字段中有不同的内容(例如,未正确重新索引并在添加 copyField 指令后清除索引)。

如果您想使用可轻松映射到用户输入的自由文本搜索,请改用 edismax 查询解析器 (defType=edismax),在 q=apple trade 中提供查询,并在qf=Content.