【问题标题】:Apache Solr string field or text field?Apache Solr 字符串字段或文本字段?
【发布时间】:2011-11-02 18:54:25
【问题描述】:

在 apache Solr 中,如果两者都能解决,为什么我们总是需要更喜欢字符串字段而不是文本字段?

字符串或文本如何影响索引大小、索引读取、索引创建等参数?

【问题讨论】:

    标签: 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 进行排序。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-10
      相关资源
      最近更新 更多