双引号的奇怪solr查询

时间:2013-11-06 03:18:14

标签: solr lucene

我的字段定义为

<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": "单鑫鑫"}

那么,双引号的含义是什么意思????

1 个答案:

答案 0 :(得分:-1)

双引号用于短语。在Lucene搜索工作如下,

field1:foo

field2:"foo bar"

field3:foo bar

对field1和field2的搜索将按预期工作,而field3很可能会出错,因为它会将“bar”视为与搜索分开。

更多阅读Apache Lucene - Query Parser Syntax