在 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 倒排索引的近似值。
我有很多文档(带有分析的文本字段 标题)。它们已在 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 倒排索引的近似值。