Apache solr 查询与完整索引数据的完全匹配
Apache solr exact match of a query with full indexed data
我正在使用 solr 4.8。我有一个非常基础的问题。假设我有一个字段是包含一个字符串,例如"I am in class" 对于文档和第二个文档,其值为 "class"。现在我想用存储的字符串精确查询。即如果用户搜索 class,它应该 return 第二个文档,因为这两个字符串是相等的。它不应该 return 第一个文档,因为我的查询和它的值不完全匹配。
我想在 apache solr 中实现同样的目标。如何实现。
您需要一个关键字分词器。 https://cwiki.apache.org/confluence/display/solr/Tokenizers
This tokenizer treats the entire text field as a single token.
作为架构中的示例 xml:
<field name="title" type="exactstring" indexed="true" stored="true" />
....
<fieldType name="exactstring" class="solr.TextField" sortMissingLast="true" omitNorms="true">
<analyzer type="query">
<tokenizer class="solr.KeywordTokenizerFactory"/>
</analyzer>
</fieldType>
我正在使用 solr 4.8。我有一个非常基础的问题。假设我有一个字段是包含一个字符串,例如"I am in class" 对于文档和第二个文档,其值为 "class"。现在我想用存储的字符串精确查询。即如果用户搜索 class,它应该 return 第二个文档,因为这两个字符串是相等的。它不应该 return 第一个文档,因为我的查询和它的值不完全匹配。
我想在 apache solr 中实现同样的目标。如何实现。
您需要一个关键字分词器。 https://cwiki.apache.org/confluence/display/solr/Tokenizers
This tokenizer treats the entire text field as a single token.
作为架构中的示例 xml:
<field name="title" type="exactstring" indexed="true" stored="true" />
....
<fieldType name="exactstring" class="solr.TextField" sortMissingLast="true" omitNorms="true">
<analyzer type="query">
<tokenizer class="solr.KeywordTokenizerFactory"/>
</analyzer>
</fieldType>