我已索引具有字段-
的文件具有全部复制字段-
来源:*,
dest:_text _
现在,当我搜索 Content 字段进行查询-Apple trade时,我会得到6057个文档;
但是当我进行搜索-交易Apple时,我得到了5878个文档。
但是,当在 catch-all 字段上执行相同的搜索时,两个查询都得到相同的结果(6057个文档)。
我不明白这里的错误,因为我希望solr在 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
答案 0 :(得分:1)
根据您刚刚添加到问题中的内容,并假设Lucene查询解析器忽略了:
后的空格,则查询为Content:trade <default search field>:Apple
-您不会同时搜索第一个和第二个术语Content
字段。
交换他们的位置时,您正在搜索Content:Apple <default search field>:trade
。
在默认配置中,默认搜索字段为_text_
。由于查询是不同的,因此您可以假定字段中存在不同的内容(例如,在添加copyField
指令后,如果没有正确地重新索引并清除索引)。
如果您想使用自由文本搜索来轻松映射到用户输入,请改用edismax查询解析器(defType=edismax
),在q=apple trade
中提供查询,并在{{ 1}}。