当查询词混乱时,Solr 搜索结果会发生变化
Solr search results changes when query terms are jumbled up
我已经用 字段 -
索引了一个文件
- 内容(类型:text_general,不可逆:false,索引:true,存储:true)
- 类别(类型:text_general,不可逆:false,索引:true,存储:true)
- 标题(类型:text_general,不可反转:false,索引:true,存储:true)
带有 catch-all copyfield-
来源:*,
目的地:_text_
现在,当我搜索 Content 字段,查询 - Apple trade 时,我得到 6057 个文档;
但是当我搜索 - 交易 Apple 时,我得到了 5878 个文档。
然而,当在 catch-all 字段上执行相同的搜索时,我得到了两个查询(6057 个文档)的相同结果。
我不理解这里的错误,因为我希望 solr 在 Content 字段上搜索时为两个查询提供相同的结果。
我正在使用-
- LuceneQParser
- 经典相似度
'Content' 字段的两个查询:
- 苹果交易
http://localhost:8983/solr/core_name/select?q=Content%3A%20Apple%20trade
- 交易苹果
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
.
我已经用 字段 -
索引了一个文件- 内容(类型:text_general,不可逆:false,索引:true,存储:true)
- 类别(类型:text_general,不可逆:false,索引:true,存储:true)
- 标题(类型:text_general,不可反转:false,索引:true,存储:true)
带有 catch-all copyfield-
来源:*,
目的地:_text_
现在,当我搜索 Content 字段,查询 - Apple trade 时,我得到 6057 个文档;
但是当我搜索 - 交易 Apple 时,我得到了 5878 个文档。
然而,当在 catch-all 字段上执行相同的搜索时,我得到了两个查询(6057 个文档)的相同结果。
我不理解这里的错误,因为我希望 solr 在 Content 字段上搜索时为两个查询提供相同的结果。
我正在使用-
- LuceneQParser
- 经典相似度
'Content' 字段的两个查询:
- 苹果交易
http://localhost:8983/solr/core_name/select?q=Content%3A%20Apple%20trade
- 交易苹果
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
.