【发布时间】:2016-02-03 07:10:53
【问题描述】:
我正在尝试使用 elasticsearch 实现自动完成功能。我正在处理的索引结构是这样的
"title": "blog post 1",
"body": "body of the blog post",
"category": "programming",
"locations": [
{"name": "united states"},
{"name": "new york"},
{"name": "venice"}
]
我正在尝试使用嵌套聚合。我正在使用的映射是这样的
{
blog : {
mappings : {
tag : {
properties : {
body : {
type : string
},
category : {
type : string
},
locations : {
properties : {
name : {
type : string
}
}
},
title : {
type : string
}
}
}
}
}
}
应该基于locations.name聚合结果的查询是
GET /blog/tag/_search
{
"size": 0,
"query": {
"match": {
"locations.name": "montreal"
}
},
"aggs": {
"aggregated_locations": {
"nested": {
"path": "locations"
},
"aggs": {
"filtered_locations": {
"terms": {
"fields": "locations.name"
}
}
}
}
}
}
目前我正在使用弹性搜索的 chrome 插件执行上述请求。上面的查询给出了一个错误,这个错误很长,但如果有人提示,我也可以发布它。我想我在解释嵌套聚合的含义时可能是错误的,这意味着我的映射是错误的。但我无法弄清楚问题出在哪里。
【问题讨论】:
标签: elasticsearch elasticsearch-plugin