如何在Elasticsearch中处理重复数据?

时间:2012-12-27 20:26:04

标签: lucene search-engine elasticsearch

我使用过父母&子映射以规范化数据,但据我所知,无法从_parent文档中获取任何字段。

以下是我的索引的映射:

{
 "mappings": {
    "building": {
      "properties": {
        "name": {
          "type": "string"
        }
      }
    },
    "flat": {
      "_parent": {
        "type": "building"
      },
      "properties": {
        "name": {
          "type": "string"
        }
      }
    },
    "room": {
      "_parent": {
        "type": "flat"
      },
      "properties": {
        "name": {
          "type": "string"
        },
        "floor": {
          "type": "long"
        }
      }
    }
  }
}

现在,我正试图找到在房型中存储flat_namebuilding_name的最佳方式。我不会查询这些字段,但在查询floor等其他字段时我应该能够获取它们。

将有数百万个房间,我没有太多内存,所以我怀疑这些重复的值可能会导致内存不足。目前,flat_namebuilding_name字段具有"index": "no"属性,我为_source字段启用了压缩。

您是否有任何有效的建议来避免重复值,例如查询多个查询或hacky方式从_parent文档获取字段或非规范化数据是处理此类问题的唯一方法?

0 个答案:

没有答案