Solr文本字段和字符串字段-不同的搜索行为

9rnv2umw  于 6个月前  发布在  Solr
关注(0)|答案(3)|浏览(110)

我正在开发Solr 4+。
我有几个字段到我的solr模式与不同的solr字段类型。
文本字段和字符串字段的搜索是否不同?
因为我试图搜索字符串字段(这是几个方面字段的复制字段),这并不像预期的那样工作。目标字符串字段被索引和存储。
然而,当我改变目标字段的文本字段(只有索引),它的工作正常.
你能解释一下为什么会发生这种情况吗?solr中的文本字段和字符串字段在搜索方面到底有什么区别?

8xiog9wr

8xiog9wr1#

TextFields通常有一个tokenizer和文本分析,这意味着索引内容被分解为单独的token,不需要精确匹配-每个单词/ token可以单独匹配,以决定整个文档是否应该包含在响应中。
StrFields不能应用任何标记化或分析/过滤器,并且只会为精确匹配提供给予结果。如果您需要应用分析或过滤器的StrField,则可以使用TextFieldKeywordTokenizer实现此功能。

wgxvkvu9

wgxvkvu92#

一个通用的文本字段,具有合理的通用跨语言默认值:它使用StandardTokenizer进行标记,从不区分大小写的“stopwords.txt”(默认为空)中删除停止词,并减少大小写。仅在查询时,它还应用同义词。
StrField类型不被分析,而是被逐字索引/存储。

i7uq4tfw

i7uq4tfw3#

Solr模型默认定义的字段非常不同。
在不使用**tokenization**或其他处理的情况下,字符串可以精确地保存单词或句子。
标记化和二次处理(如小写等)通常由文本处理。在我们需要匹配句子的部分的任何情况下都很有用。
如果两个字段都有"This is a sample sentence"索引,我们需要寻找精确的内容。对于文本字段中的命中,搜索sample甚至启用词干的样本可能就足够了。“This is a sample sentence"在字符串字段中获得命中。

相关问题