【问题标题】:Getting inverted index for indexed documents in Elasticsearch在 Elasticsearch 中获取索引文档的倒排索引
【发布时间】:2016-07-18 21:19:43
【问题描述】:

我有很多文档(带有分析的文本字段标题)。它们已在 Elasticsearch 中编入索引,现在我只需要获取字段 title 中每个术语的术语频率 TF 和逆文档频率 IDF,而无需进行任何查询。 (只是索引文档并检索字段 title 中所有术语的倒排索引)

这在 Elasticsearch 中可行吗?

【问题讨论】:

    标签: elasticsearch tf-idf


    【解决方案1】:

    我写了一个tutorial,介绍了如何从 ES 中获取术语文档矩阵。这确实涵盖了获取 TF,但不包括 IDF。这是使用 Python 的 ES 1.6.0。

    更多信息请查看TermVector API

    【讨论】:

    • 谢谢@Animesh Pandey,代币呢?我在字段 title 上应用了分析器,我可以轻松获得每个文档的结果标记吗?
    • 我也在找这个。你现在有任何信息吗?
    • 或者你可以使用:_termvectors 来获取 TF
    【解决方案2】:

    没有。您也许可以找到一种方法以某种方式将其破解。并且在每个查询的基础上,您可以使用 EXPLAIN api 例如https://www.elastic.co/guide/en/elasticsearch/reference/2.3/search-explain.html 但是没有 API 可以返回此信息。

    【讨论】:

      【解决方案3】:
      GET /YOUR_INDEX/YOUR_DOC_TYPE/YOUR_ID/_termvectors
      {
        "fields" : ["YOUR_FIELD"],
        "term_statistics" : true,
        "field_statistics" : true
      }
      

      这将获得文档中每个单词的 TF。

      【讨论】:

        【解决方案4】:

        如果有人仍然遇到与 OP 类似的问题,我创建了一个 Python module called inelastic,它为给定索引和字段打印出 Elasticsearch 倒排索引的近似值。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-06-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多