2016-08-05 2 views
0

저는 ES를 처음 사용하고 여러 검색어로 검색 할 수 있도록 설정하려고합니다. ES에서탄성 검색으로 다차원 검색

"SELECT field4 FROM tablename WHERE (field1 = 'A' OR field1 = 'AA') AND (field2 = 'B' OR fields2 = 'BB') AND (field3 = 'C' OR field3 = 'CC')" 

내가

{ 
"query": { 
"bool": { 
    "must": [ 
    { 
     "term": { 
     "field1": {"A","AA"} 
     } 
    }, 
    { 
     "term": { 
     "field2": {"B","BB"} 
     } 
    }, 
    { 
    "term": { 
     "field3": {"C","CC"} 
    } 
    } 
    } 
} 
} 

답변

2

당신이 가장 가능성이 원하는 것은 terms 쿼리입니다 노력하고있어 : 같은

내 SQL 보인다. 당신은 여기에 대한 설명서를 볼 수 있습니다 https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-terms-query.html

해당 사이트의 예는 다음과 같습니다

{ 
    "terms" : { "user" : ["kimchy", "elasticsearch"]} 
} 

또한, 쿼리는 현재 유효한 JSON, 당신이 그것을 수정해야합니다 없습니다.

+0

나는 다음을 시도했지만 여전히 작동하지 않는다. {{ "from : 0,"size ": 200,"query ": {"bool ": {"must ": {"bool ": {"must " { "bool": { "field2": "4"}}]} {{ "bool": { "term": { "field2": "1"}} ": {"필드 ":"3 "}}}}}}}}}} – user954134

+0

무엇이 무엇입니까? "일하지 않는다"는 뜻입니까? 쿼리를 실행 한 결과는 무엇입니까? 오류가 있거나 0 개의 결과 만 반환합니까? 후자의 경우 쿼리와 일치하는 문서가 없을 것입니다. elasticsearch 클러스터에있는 문서를 두 번 확인하고 더 간단한 쿼리를 사용하여 문서가 있는지 확인하고 쿼리를 올바르게 실행하십시오. – Phil