我正在使用 solr 4.8。我有一个非常基础的问题。假设我有一个字段包含一个字符串,例如文档的“I am in class”,第二个文档的值为“class”。现在我想用存储的字符串完全查询。即如果用户搜索类,它应该返回第二个文档,因为这两个字符串是相等的。它不应该返回第一个文档,因为我的查询和它的值不完全匹配。
我想在 apache solr 中实现相同的目标。如何实施。
我正在使用 solr 4.8。我有一个非常基础的问题。假设我有一个字段包含一个字符串,例如文档的“I am in class”,第二个文档的值为“class”。现在我想用存储的字符串完全查询。即如果用户搜索类,它应该返回第二个文档,因为这两个字符串是相等的。它不应该返回第一个文档,因为我的查询和它的值不完全匹配。
我想在 apache solr 中实现相同的目标。如何实施。
您需要一个关键字标记器。https://cwiki.apache.org/confluence/display/solr/Tokenizers
此标记器将整个文本字段视为单个标记。
作为模式 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>