1
개체 배열이있는 ElasticSearch 쿼리를 수행하고 해당 배열의 모든 항목이 일치하는 조건을 필터링해야합니다.모든 필드가 내 필터와 일치 할 때만 결과를 검색하는 ElasticSearch 쿼리?
다음PUT myindex
{
"mappings": {
"myindexType":{
"dynamic": "strict",
"_all":{
"enabled": false
},
"properties":{
"thisthing": {
"properties": {
"thingTypeId": {
"type": "keyword"
},
"thingId": {
"type": "keyword"
}
}
},
"description": {
"type": "keyword"
},
"text": {
"type": "text"
}
}
}
}
}
내 인덱스 데이터입니다 : 여기
POST myindex/myindexType
{
"thisthing": [
{
"thingId": "1",
"thingTypeId": "42"
},
{
"thingId": "1",
"thingTypeId": "43"
},
{
"thingId": "1",
"thingTypeId": "44"
}
],
"description":"something",
"text":"something"
}
그리고 쿼리는 내가 지금까지 가지고 있습니다 :
GET _search
{"query": {
"bool": {
"must": [ {
"match": {
"text": {
"query": "something",
"fuzziness": "Auto",
"operator": "and"
}
}
}
],
"filter": [
{"term": {"thisthing.thingTypeId": "42" } },
{"term": {"thisthing.thingTypeId": "43" } }
]
}}}
내 쿼리 결과를 찾아온다는 때문에 여기 내 매핑입니다 ids (42) 및 (43) 모두가 인덱스 된 데이터에 존재한다. 그러나 인덱싱 된 데이터의 모든 ID가 내 필터에 없으면 결과를 가져 오지 않는 쿼리를 원합니다. 용어 및 검색어 필터링을 행운없이 시도했습니다.
응답 해 주셔서 감사합니다.하지만이 기사가 문제를 해결하는 방법을 모르겠습니다. ID 1,2,3이있는 쿼리가 있다고 가정 해 보겠습니다. 색인에는 데이터 1,2,3,4가 있습니다. 데이터에 쿼리에없는 ID가 있으므로 쿼리에서 결과를 반환하지 않아야합니다. 지금까지 본 모든 예는 쿼리에 데이터에있는 ID가 포함되어 있기 때문에 결과를 반환합니다. 나는 실제로 그 반대를 원한다. 감사,,, – suwatechie