Elasticsearch嵌套查询返回所有嵌套列表
Elasticsearch nested query is returned all the nested list
我的模型有一个嵌套字段 events
和一个字段 team_id
。这些嵌套事件可能很大,我想对它做一些事情。
Return 仅具有特定 team_id
的事件与下面的查询无关 returns 所有事件
使用inner_hits
排序,限制大小和偏移量,也尝试通过发送size
和from
参数但没有成功
我在 Ruby
中使用 elasticsearch 5
Model.search(
query: {
bool:{
must: [
{ match: { "_id": "zzzzzzz" }},
nested: {
path: "events",
query: {
match: { "events.team_id": "sdlfjslasdfj" }
},
inner_hits: {}
}
]
}
}
)
使用 elasticsearch-api
gem 让它工作
https://github.com/elastic/elasticsearch-ruby/tree/master/elasticsearch-api
response = client.search index: 'index_name',
body: {
"_source": false,
"query": {
"nested": {
"path": "events",
"query": {
"bool": {
"must":[
{"match": {"events.team_id": "xyz"}},
{"match": {"_id": "sdlfjslasdfj"}}
]
}
},
"inner_hits": {
"size": 10,
"from": 0,
"sort": [{ "events.starts_at": "asc" }]
}
}
}
}
我的模型有一个嵌套字段 events
和一个字段 team_id
。这些嵌套事件可能很大,我想对它做一些事情。
Return 仅具有特定
team_id
的事件与下面的查询无关 returns 所有事件使用
inner_hits
排序,限制大小和偏移量,也尝试通过发送size
和from
参数但没有成功
我在 Ruby
中使用elasticsearch 5
Model.search(
query: {
bool:{
must: [
{ match: { "_id": "zzzzzzz" }},
nested: {
path: "events",
query: {
match: { "events.team_id": "sdlfjslasdfj" }
},
inner_hits: {}
}
]
}
}
)
使用 elasticsearch-api
gem 让它工作
https://github.com/elastic/elasticsearch-ruby/tree/master/elasticsearch-api
response = client.search index: 'index_name',
body: {
"_source": false,
"query": {
"nested": {
"path": "events",
"query": {
"bool": {
"must":[
{"match": {"events.team_id": "xyz"}},
{"match": {"_id": "sdlfjslasdfj"}}
]
}
},
"inner_hits": {
"size": 10,
"from": 0,
"sort": [{ "events.starts_at": "asc" }]
}
}
}
}