我正在使用Elastic search-1.2.2。
这里我要做一个filter + sort的组合。 需要获得关于过滤器的排序id值
我不喜欢使用facet,因为它已被弃用。 查询过滤器不支持AND过滤器,因此我尝试提及boolFilter并将其指定为searchQueryBuilder中的后置过滤器。 查询:
{
"from": 0,
"size": 10,
"sort": [
{
"display_order": {
"order": "asc"
}
}
],
"post_filter": {
"bool": {
"must": {
"and": {
"filters": [
{
"term": {
"item_ids": ["564279ac-a887-4a0b-99e9-5802b4508747","564279ac-a887-4a0b-99e9-5802b4508447","564279ac-a887-4a0b-99e9-5302b4508747"]
}
}
]
}
}
}
}
}
但是这个查询只过滤了记录,并且没有在这里工作。
我是否做错了什么?
答案 0 :(得分:0)
我认为你过度复杂化了这个问题 -
你是什么意思"不工作" - 你收到错误吗?
您可以尝试这种简化的查询:
curl -XGET "http://localhost:9200/hubware3/message/_search?pretty" -d'
{
"sort": [
{
"display_order": {"order": "asc"}
}
],
"filter" : {
"terms" : { "item_ids" : ["564279ac-a887-4a0b-99e9-5802b4508747","564279ac-a887-4a0b-99e9-5802b4508447","564279ac-a887-4a0b-99e9-5302b4508747"]}
}
}
}'