我使用的是Elasticsearch版本2.3.2。我试图在布尔查询上使用过滤器,但我收到一个错误:
"type": "query_parsing_exception",
"reason": "[bool] query does not support [term]",
我的弹性搜索查询是:
GET index_name/_search
{
"query": {
"bool": {
"must": [
{"match": {
"title": "white"
}},
{
"match": {
"newContent": "white"
}
}
],
"filter": {
"term": {
"default_collection": "true"
}
}
,"term":{
"wiki_collection": "true"
}
}
}
}
我不确定问题是什么。我可能会遗漏一些东西
答案 0 :(得分:6)
您需要在term
数组中移动filter
个过滤器(并在发送有效内容时使用POST而不是GET):
POST index_name/_search
{
"query": {
"bool": {
"must": [
{
"match": {
"title": "white"
}
},
{
"match": {
"newContent": "white"
}
}
],
"filter": [
{
"term": {
"default_collection": "true"
}
},
{
"term": {
"wiki_collection": "true"
}
}
]
}
}
}