如何在字段上强制索引?
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 所述 nested
type 子对象未编入索引:
所以有两个解决方法:
- 要将
loc
保留为嵌套对象,请将 include_in_parent
通配符添加到 true
- 或者,将
loc
类型改为 Object
。
我已经为一些包含 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 所述 nested
type 子对象未编入索引:
所以有两个解决方法:
- 要将
loc
保留为嵌套对象,请将include_in_parent
通配符添加到true
- 或者,将
loc
类型改为Object
。