在 Elasticsearch 中获取索引文档的倒排索引

Getting inverted index for indexed documents in Elasticsearch

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

在 Elasticsearch 中可以吗?

我写了一篇 tutorial 关于如何从 ES 获取术语文档矩阵的文章。这确实包括获取 TF 但不包括 IDF。这是针对使用 Python.

的 ES 1.6.0

有关更多信息,您应该查看 TermVector API

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

GET /YOUR_INDEX/YOUR_DOC_TYPE/YOUR_ID/_termvectors
{
  "fields" : ["YOUR_FIELD"],
  "term_statistics" : true,
  "field_statistics" : true
}

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

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