我有一个查询,我需要筛选出结果.
这是我的查询
{
"query": {
"filtered": {
"query": {
"multi_match": {
"default_operator": "AND",
"fields": [
"author",
"title",
"publisher",
"year"
],
"query": "George Orwell"
}
},
"filter": {
"terms": {
"year": [
1980,
1981
]
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我收到一个错误说no [query] registered for [filtered].我清楚地查询了过滤字段.我遵循elasticsearch页面上过滤的查询文档中给出的格式.
https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-filtered-query.html
Val*_*Val 168
该参数filtered已在ES 5.0中弃用并删除.您现在应该使用bool/must/filter查询.
{
"query": {
"bool": {
"must": {
"multi_match": {
"operator": "and",
"fields": [
"author",
"title",
"publisher",
"year"
],
"query": "George Orwell"
}
},
"filter": {
"terms": {
"year": [
1980,
1981
]
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
以下是两个查询之间的差异:
3,4c3,4
< "bool": {
< "must": {
---
> "filtered": {
> "query": {
6c6
< "operator": "and",
---
> "default_operator": "AND",
Run Code Online (Sandbox Code Playgroud)
PS:您正在查看的参考页面位于附录的"已删除页面"中,因此它不再是主要文档的一部分.
| 归档时间: |
|
| 查看次数: |
50585 次 |
| 最近记录: |