我正在研究Solr 4 +。
我的solr模式中有几个字段,包含不同的solr字段类型。
对文本字段和字符串字段的搜索是否有所不同?
因为我正在尝试搜索字符串字段(这是少数方面字段的复制字段),这不能按预期工作。目标字符串字段被索引并存储。
但是,当我更改文本字段(仅编制索引)的目标字段时,它可以正常工作。
你能说明为什么会这样吗? solr中搜索文本和字符串字段之间的区别是什么?
答案 0 :(得分:27)
TextFields
通常附加一个tokenizer和文本分析,这意味着索引内容被分解为单独的标记,其中不需要完全匹配 - 每个单词/标记可以单独匹配以决定是否整个文件应包含在回复中。
StrFields
无法应用任何标记化或分析/过滤器,并且只会为完全匹配提供结果。如果您需要应用分析或过滤器的StrField,则可以使用TextField
和KeywordTokenizer
来实现此目的。
答案 1 :(得分:0)
具有合理的通用跨语言默认值的常规文本字段:使用StandardTokenizer进行标记,从不区分大小写的“stopwords.txt”(默认为空)中删除停用词,以及关闭案例。仅在查询时,它还应用同义词。
不分析StrField类型,而是逐字索引/存储。