我想搜索标题和正文的全文并过滤回答计数。 我阅读了elasticsearch documentation for combining filters并构建了此查询。
"query": {
"bool": {
"minimum_should_match": "25%",
"should": [
{
"query_string": {
"query": "elasticsearch",
"analyze_wildcard": "True",
"fields": [
"body"
]
}
},
{
"query_string": {
"query": "test",
"analyze_wildcard": "True",
"fields": [
"title"
]
}
}
]
},
"constant_score": {
"filter": {
"query": {
"bool": {
"must": [
{
"range": {
"answer_count": {
"gte": 0,
"lte": 0
}
}
}
]
}
}
}
}
}
}
它一直给我这个错误。
RequestError: TransportError(400, u'parsing_exception', u'no [query] registered for [filter]')
答案 0 :(得分:3)
你需要这样写:
{
"query": {
"bool": {
"minimum_should_match": "25%",
"should": [
{
"query_string": {
"query": "elasticsearch",
"analyze_wildcard": "True",
"fields": [
"body"
]
}
},
{
"query_string": {
"query": "test",
"analyze_wildcard": "True",
"fields": [
"title"
]
}
}
],
"filter": [
{
"range": {
"answer_count": {
"gte": 0,
"lte": 0
}
}
}
]
}
}
}