1

我的字段定义为

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

那么,双引号是什么意思????

4

1 回答 1

-1

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

field1:foo

field2:"foo bar"

field3:foo bar

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

在这里阅读更多Apache Lucene - 查询解析器语法

于 2013-12-03T17:43:52.617 回答