【问题标题】:Creating an inverted index of a numberic field in Elasticsearch在 Elasticsearch 中创建数字字段的倒排索引
【发布时间】:2020-01-15 21:59:31
【问题描述】:

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

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

我想创建一个索引,在其中可以查看引用文章的 id 列表,例如

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

我的理解是技术上的倒排索引。这可以是静态的,因此可以只计算一次。我只看到有关用于术语的倒排索引及其在短语中的频率的文档,这是一个非常不同的用例。

我考虑过使用聚合,但由于不同 id 的数量太大,它会用完存储桶,我不确定 2000 万个存储桶是否可行和/或一个好主意。

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

非常感谢!

【问题讨论】:

    标签: elasticsearch elasticsearch-aggregation inverted-index


    【解决方案1】:
    1. 在您的情况下使用 ElasicSearch 没问题。
    2. 创建索引的脚本
    PUT /city_index
    {
      "mappings": {
      "citydata": {
        "dynamic": "false",
        "properties": {
          "id": {
            "type": "keyword"
    
          },
          "cited_by": {
            "type": "object",
            "properties": {
              "id": {
                "type": "keyword"
              }
            }
          }
        }
      }
      }
    }
    
    
    

    【讨论】:

    • 谢谢,我的问题更多是关于如何用其他索引中的数据填充索引!
    猜你喜欢
    • 2014-12-03
    • 2015-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-18
    • 1970-01-01
    • 2020-02-22
    • 2017-02-12
    相关资源
    最近更新 更多