elasticsearch 5:使用排除搜索
elasticsearch 5 : search with exclude
我尝试在索引上搜索人物(按名字和姓氏),这部分非常简单:
GET /my_index/persons/search
{
"query": {
"query_string": {
"query" : "john doe"
}
}
}
此外,我想排除具有特定 ID 的人,我尝试使用 filter
子句,但我无法正确形成查询,你们能帮帮我吗?
编辑
我试过了
{
"query":{
"multi_match":{
"query":"anne mirande",
"fields":[
"first_name",
"last_name"
],
"type":"cross_fields",
"operator":"and"
}
},
"filter":{
"not":{
"term":{
"id":1
}
}
}
}
但它抛出的是这样的:Unknown key for a START_OBJECT in [filter].
你可以使用这样的东西。
GET /my_index/persons/search
{
"query": {
"bool": {
"must": [
{"term": {
"name": {
"value": "john doe"
}
}}
],
"must_not": [
{"term": {
"_id": {
"value": "1"
}
}}
]
}
}
}
我尝试在索引上搜索人物(按名字和姓氏),这部分非常简单:
GET /my_index/persons/search
{
"query": {
"query_string": {
"query" : "john doe"
}
}
}
此外,我想排除具有特定 ID 的人,我尝试使用 filter
子句,但我无法正确形成查询,你们能帮帮我吗?
编辑
我试过了
{
"query":{
"multi_match":{
"query":"anne mirande",
"fields":[
"first_name",
"last_name"
],
"type":"cross_fields",
"operator":"and"
}
},
"filter":{
"not":{
"term":{
"id":1
}
}
}
}
但它抛出的是这样的:Unknown key for a START_OBJECT in [filter].
你可以使用这样的东西。
GET /my_index/persons/search
{
"query": {
"bool": {
"must": [
{"term": {
"name": {
"value": "john doe"
}
}}
],
"must_not": [
{"term": {
"_id": {
"value": "1"
}
}}
]
}
}
}