如何在字段上强制索引?

How to force index on a field?

我已经为一些包含 GEOJson 点对象的条目编制了索引:

示例:

  {
      "_id": "48LEDd5imvEpFnCQx",
      "loc": {
          "type": "Point",
          "coordinates": [-2.7577078342437744, 47.65381454210301]
      },
      "geoip": false,
      "trackerId": "RG-DEMO-1",
      "date": "2015-07-25T21:12:07.286Z"
  }

映射:

        {
        'trace': {
            'properties': {
                'loc': {
                    'type': 'nested',
                    'properties': {
                        'type': {
                            'type': 'string'
                        },
                        'coordinates':{
                            'type': 'geo_point',
                            'geohash':true,
                            'geohash_prefix':true,
                            'lat_lon':true,
                            'fielddata' : {
                                'format' : 'compressed',
                                'precision' : '1cm'
                            }
                        }
                    }
        ...

生成了 geohash 但 Kibana 说 loc.coordinates 没有索引,我不能使用可视化地图 Unindexed fields can not be searched

在这种类型的字段上强制索引的技巧是什么?

the doc 所述 nestedtype 子对象未编入索引:

所以有两个解决方法:

  • 要将 loc 保留为嵌套对象,请将 include_in_parent 通配符添加到 true
  • 或者,将 loc 类型改为 Object