Apache Solr 字符串字段或文本字段?
Posted
技术标签:
【中文标题】Apache Solr 字符串字段或文本字段?【英文标题】:Apache Solr string field or text field? 【发布时间】:2011-11-02 18:54:25 【问题描述】:在 apache Solr 中,如果两者都能解决,为什么我们总是需要更喜欢字符串字段而不是文本字段?
字符串或文本如何影响索引大小、索引读取、索引创建等参数?
【问题讨论】:
【参考方案1】:solr 模式中默认定义的字段有很大不同。
String
将单词/句子存储为精确字符串而不执行标记化等。通常用于存储精确匹配,例如,用于分面。
Text
通常执行标记化和二次处理(例如小写等)。当我们想要匹配句子的一部分时,对所有场景都很有用。
如果以下示例 "This is a sample sentence"
被索引到两个字段,我们必须准确搜索文本 This is a sample sentence
才能从 string
字段中获得命中,而搜索 sample
(或甚至samples
启用了词干)以从text
字段中获得成功。
【讨论】:
你还能评论索引大小、索引读取、索引创建吗? 标记化时你会得到更大的索引大小,多大取决于你的处理链。由于有更多工作,索引创建也会稍微慢一些。无论哪种方式,索引读取/创建都会很棒,所以除非接近数百万个文档,否则不要担心。 我正在阅读数以百万计的文档..希望这不是问题..所以我选择字符串字段,因为它在所有情况下似乎都很有效而且我不需要标记器/全文搜索 @JohanSjöberg 正如您所解释的那样,我理解字符串和文本之间的区别,但是如果我需要获得*tence
的点击量怎么办。如果正确选择字段类型怎么办?【参考方案2】:
添加到 Johans Sjöbergs 的好答案:
您可以对String
进行排序,但不能对Text
进行排序。
【讨论】:
以上是关于Apache Solr 字符串字段或文本字段?的主要内容,如果未能解决你的问题,请参考以下文章