【问题标题】:Inverted index of json documentjson文档的倒排索引
【发布时间】:2018-04-18 09:15:01
【问题描述】:

当我们谈论倒排索引时,我们总是谈论索引非结构化文本文档。但是 ElasticSearch 中的文档是 JSON 格式的,它们是“键”-“值”对。所以我想知道JSON文档的倒排索引是什么样子的。换句话说,当我们进行像“select * from table where name = john”这样的搜索时,ES做了什么?

【问题讨论】:

    标签: elasticsearch inverted-index


    【解决方案1】:

    inverted index 基本上存储了术语和它们所在的文档/字段之间的关系。现在,这些术语可以来自非结构化文本,但不仅如此。 JSON 文档还包含文本,ES 对其进行分析和索引。

    基本上,从 30000 英尺的角度来看,它的工作方式是 ES 解析它接收到的 JSON 文档,遍历所有字段并分析/标记所有这些字段的值。这个分析过程中产生的标记然后被索引到倒排索引中。

    长话短说,它不一定是被索引到倒排索引中的非结构化文本,也可以是 JSON 文档等,其中还包含结构化、非结构化文本,还包括数字、日期等.

    【讨论】:

    • 你能说得更具体点吗?我知道像 JSON 文档这样的结构化文档也包含文本并且可以被索引,但是如何? ES如何知道哪个字段的哪个值? ES 是否为每个字段建立一个小索引?
    • 你明白了,这就是 ES 在幕后所做的。
    • 它基本上是使用每个文档的稀疏表示存储的词频矩阵。您可以使用 termvectors API 来探索它。显而易见的一点是必须分析字段,否则它们将不会包含在矩阵中(倒排索引)
    • @sramalingam24 他们将作为单个标记(即关键字)
    • 这个运气好吗?
    猜你喜欢
    • 2016-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多