【问题标题】:Lucene difference between Term and FieldsLucene Term和Fields的区别
【发布时间】:2020-09-21 02:37:21
【问题描述】:

阅读了很多关于 Lucene 索引和搜索的内容,但仍然无法理解 Term 是什么?term 和 fields 有什么区别?

【问题讨论】:

    标签: lucene search-engine lucene.net


    【解决方案1】:

    一个非常粗略的类比是 fields 就像数据库表中的列,而 terms 就像每个数据库列中的内容。

    更具体地说是 Lucene:

    条款

    术语是索引标记。见here

    Lucene 分析器正在处理将文本分解为索引标记(也称为术语)的管道

    因此,例如,如果您在文档中有以下句子...

    "This is a list of terms"
    

    ...您将其传递给空格标记器,这将生成以下术语:

    This
    is
    a
    list
    of
    terms
    

    因此,术语也是您在执行搜索时放入查询中的内容。有关如何在经典查询解析器中使用它们的定义,请参阅 here

    字段

    字段是文档的一部分。

    一个简单的例子是文档的标题与文档的正文(剩余的文本/内容)。这些可以定义为 Lucene 索引中的两个单独的 Lucene 字段。

    (您显然需要能够解析源文档,以便可以将标题与正文分开 - 否则在构建 Lucene 索引时您无法正确填充每个单独的字段。)

    然后,您可以将所有标题的 terms 放入 title 字段中;并将正文的条款放入 body 字段中。

    现在您可以将标题数据与正文数据分开搜索。

    您可以阅读有关字段herehere 的信息。有各种不同类型的字段,特定于它们将持有的数据(术语)类型。

    【讨论】:

      猜你喜欢
      • 2013-04-30
      • 2021-03-24
      • 2013-02-28
      • 2020-01-20
      • 2015-03-03
      • 1970-01-01
      • 2012-04-24
      • 1970-01-01
      • 2011-10-20
      相关资源
      最近更新 更多