2014-11-05 65 views
13

我正在使用Solr 4+。Solr文本字段和字符串字段 - 不同的搜索行为

我有几个字段到我solr架构与不同的solr字段类型。

对文本字段和字符串字段的搜索不同吗?

因为我想在字符串字段搜索(这是几个小领域的副本域)预期不工作。目标字符串字段被索引并存储。

但是,当我更改文本字段(仅索引)的目标字段时,它工作正常。

你能提出为什么会发生这种情况吗?在搜索方面,solr中的文本和字符串字段究竟有什么区别?

回答

22

TextFields通常会附加一个标记器和文本分析,这意味着将索引内容分解为不需要精确匹配的单独标记 - 每个词/标记可以单独匹配以确定整个文档是否应该是包括在回复中。

StrFields不能有任何标记化或分析/应用的过滤器,并只给出精确匹配的结果。如果您需要应用分析或过滤器的StrField,则可以使用TextFieldKeywordTokenizer来实现此功能。

0

具有合理的通用跨语言默认值的常规文本字段:它使用StandardTokenizer进行标记,从不区分大小写的“stopwords.txt”(缺省为空)以及向下情况中删除停用词。仅在查询时间,它也适用同义词。

不分析StrField类型,但逐字索引/存储。

相关问题