我需要将 OLD 查询从 ES2.0 转换为 ES6.1 ......这似乎并不容易......原来的查询是:
{
"size":0,
"query": {
"bool": {
"filter": {
"bool": {
"must": {
"query": {
"match": {
"my_hits": {
"query": 0,
"type": "phrase"
}
}
}
}
}
}
}
},
"fields": "ip",
"aggregations": {
"par_ip": {
"terms": {
"field": "ip",
"min_doc_count": 2,
"size": 10000,
"order": {
"_term": "asc"
}
}
}
}
}
我认为第一部分可以转换为:
{
"size": 0,
"query": {
"match" : {
"my_hits": "0"
}
}
}
但其余的我被困住了......
"type": "illegal_argument_exception", "reason": "默认情况下,文本字段上的字段数据是禁用的。在 [ip] 上设置 fielddata=true 以便通过反转倒排索引将字段数据加载到内存中。请注意,这可能会使用显着记忆。或者使用关键字字段。
编辑:我认为您将需要这些信息:
"mappings": { ...
"ip": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
谢谢你的帮助 !斯蒂芬妮