Py学习  »  Elasticsearch

在Elasticsearch中创建数字字段的反向索引

J. Born • 4 年前 • 225 次点击  

我有一个约2000万条记录的数据集,其结构如下:

{"id": "123",
 "cites":[
    {"id":"234", "date":"2018-05-04"},
    {"id":"456","date":"2018-02-01"}]
}

{"id":"234", "cited_by":[{"id":"123"},{"id:"188"}]}

据我所知,这在技术上是一个反向指数。这可以是静态的,所以可以只计算一次。我只看到过关于术语的倒排索引及其在短语中的频率的文档,这是一个非常不同的用例。

我研究过使用聚合,但由于不同id的数量太大,因此会耗尽bucket,我不确定2000万bucket是否可能和/或是一个好主意。

如何生成此索引?在ElasticSearch中是否可能,或者我是否需要编写一个外部脚本来成批执行此操作?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/54642
 
225 次点击  
文章 [ 1 ]  |  最新文章 4 年前
YouXiang-Wang
Reply   •   1 楼
YouXiang-Wang    4 年前
  1. 在您的案例中使用ElasicSearch没有问题。
  2. 创建索引的脚本
PUT /city_index
{
  "mappings": {
  "citydata": {
    "dynamic": "false",
    "properties": {
      "id": {
        "type": "keyword"

      },
      "cited_by": {
        "type": "object",
        "properties": {
          "id": {
            "type": "keyword"
          }
        }
      }
    }
  }
  }
}