누군가가 게시하고이를 수행하는 방법에 대한 예를 들면, Elasticsearch에서 필터링이 작동하는 방식에 관한 거의 모든 질문에 대한 답변을 얻을 수 있습니다.Elasticsearch Complex Filter Logic
A, B, C, D, E 등은 필드이고, a1, a2, ..., b1, b2, ... 등은 해당 필드의 가능한 값입니다. 또한 이러한 필드 중 하나라도 여러 값을 가질 수 있다고 가정합니다.
A = A1 및 (B = B1 OR C = C1) AND ((D = D1) 또는 (D = D2)) AND (((E :
어떻게 아래 논리 필터링 실시합니다 것 = e1) OR (E = e2) AND AND (F = f1) OR ((G = g1) AND (G = g1)) AND (H = h1)
이것은 실제 쿼리가 아닙니다. 글을 쓰려하지만, 쓰고 싶은 모든 쿼리가 있습니다.
저는 A = a1 및 (B = b1 또는 B = b2)를 수행하는 방법을 알고 있습니다. 예를 들어 아래에서 CustomerID = 113 AND (TypeID = 91 또는 TypeID = 70) 인 문서에서 "검색 할 대상"이라는 용어를 찾습니다.
{
"query": {
"filtered": {
"query": {
"query_string": {
"query": "something to search"
}
},
"filter": {
"and": [
{
"term": {
"CustomerID": "113"
}
},
{
"or": [
{
"terms": {
"TypeID": [
91,
70
]
}
}
]
}
]
}
}
}
}
그러나 나머지 필터를 조합하는 방법을 고민하는 중입니다.
전체 예제가 최고 일 것입니다!
필터를 사용 하시겠습니까? 이 복잡한 필터는 여러 번 재사용됩니까? 보여준 것과 같은 query_string을 생성하여 검색을 통해 제출할 수 있습니다. '(검색 할 대상) AND (A = a1 AND (B = b1 OR C = c1) AND ((D = d1) OR (D = d2) AND AND ((E = e1) OR (E = e2) AND AND (F = f1) OR)' –
필터가 바람직합니다. 이러한 검색 중 일부는 계속해서 사용되며 나머지는 자주 사용되지 않습니다. 저는 주로 필터가 어떻게 다른 방식으로 결합 될 수 있는지 파악하려고 노력하고 있으며 전체 구조가 어떻게 작동하는지 명확하게 보여주는 예제를 보지 못했습니다. AND 필터, OR 필터 및 BOOL 필터/쿼리의 예를 보았지만 그 중 어떤 것도 함께 재생할 수있는 방법을 보여주기에 충분하지 않았습니다. – CTC