您可以在Elasticsearch中将字段键索引为值吗?

时间:2020-06-30 14:59:38

标签: elasticsearch

我有一个具有以下结构的文档索引:

{
  ...
  "similar_objects": {
    "2": 0.35,
    "15": 0.75,
    "268": 0.13,
    "356": 0.82,
    "1024": 0.96,
  }
}

similar_objects中字段的键是对象ID,而值是相似性的度量。

这是一个问题,原因有两个:1)我希望能够搜索对象ID,如果它们本身是字段,我不知道该怎么做,以及2)作为索引中的文档以及所描述的对象数在增长,索引字段的总数迅速超过了1000个限制。我可以提高该限制,但不能保证不会超过该限制,我相信最终会造成内存问题。

理想情况下,数据将转换为以下形式:

{
  ...
  "similar_objects": {
    {
      "object_id": "2",
      "similarity": 0.35
    },
    {
      "object_id": "15",
      "similarity": 0.75
    },
    {
      "object_id": "268",
      "similarity": 0.13
    },
    {
      "object_id": "356",
      "similarity": 0.82
    },
    {
      "object_id": "1024",
      "similarity": 0.96
    }
  }
}

然后,我可以将similar_objects映射为嵌套类型,并以直接的方式轻松地搜索对象及其相似性得分,而没有任何超出限制的危险。

是否可以使用ES功能在不编制索引之前更改文档的任何方式?似乎应该以某种方式将其他字段映射为具有keyvalue字段的对象。

0 个答案:

没有答案