我的字段定义为
<fieldType name="text_name" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="solr.NGramTokenizerFactory" minGramSize="1" maxGramSize="16"/>
</analyzer>
</fieldType>
然后在solr admin中测试查询。
使用引号查询,第二个查询不工作
Input: q : real_name:"单"
Output: {"id": 1, "real_name": "单鑫鑫"}
Input: q : real_name:"单鑫"
Output: {}
Input: q : real_name:"单鑫鑫"
Output: {"id": 1, "real_name": "单鑫鑫"}
没有引号的查询,第二个查询工作
Input: q : real_name:单
Output: {"id": 1, "real_name": "单鑫鑫"}
Input: q : real_name:单鑫
Output: {"id": 1, "real_name": "单鑫鑫"}
Input: q : real_name:单鑫鑫
Output: {"id": 1, "real_name": "单鑫鑫"}
那么,双引号意味着什么?
发布于 2013-12-03 17:43:52
双引号是用于短语的。在Lucene搜索工作中,
field1:foo
field2:"foo bar"
field3:foo bar
field1和field2上的搜索将按预期工作,而field3则很可能出错,因为它将"bar“与搜索分开。
在这里更多地阅读查询分析器语法
https://stackoverflow.com/questions/19803472
复制相似问题