2014-09-29 3 views
10

전체 텍스트 검색 및 필터 방법 방법? language_id = 10 인 문서 중에서 텍스트를 검색하고 싶습니다. 나는 이것을 다음과 같이 시도했다 :Elastic Search에서 query_string 옆에있는 필터 사용

{ 
    "query": { 
    "query_string": { 
     "query": "Declared" 
    }, 
    { 
     "filtered": { 
     "filter": { 
      "term": { 
      "language_id": 10 
      } 
     } 
     } 
    } 
    } 
} 

그러나 그것은 정확하지 않은 것처럼 보인다. 그것을 고치는 방법?

답변

12

그래, 필터링 된 쿼리의 구문은 조금 성가신입니다. AFAIK는 다음과 같이 표시되어야합니다.

+0

내가 당신의 형식을 시도하지만, 필터가 @는 Kévin의 대답의 형식으로 더 나은 작업 작동하지 않습니다. 제발 봐주세요 – minocha

+0

오, 그건 오페라 였어. – Ashalynd

3

죄송합니다. 필터는 답변에 올바른 위치에 배치되지 않습니다. 버전 5.2에서

{ 
    "query":{ 
     "filtered":{ 
     "query":{ 
      "query_string":{ 
       "query":"Declared" 
      } 
     }, 
     "filter":{ 
      "term":{ 
       "language_id":10 
      } 
     } 
     } 
    } 
} 
+0

그것은 @Ashalynd가 언급 한 것이 아니라 작동하는 이것이다. 큰 도움을 주었다! – minocha

5

가, 필터링 된 쿼리는 부울 쿼리로 대체하고, 내 탄성 5.2 인스턴스에서 오류를 반환

더 노력하고 있습니다. here을 참조하십시오.

새로운 구문은 다음과 같습니다

{ 
    "query":{ 
     "bool":{ 
     "must":{ 
      "query_string":{ 
       "query":"...query..." 
      } 
     }, 
     "filter":{ 
      "term":{ 
       "language_id":10 
      } 
     } 
     } 
    } 
} 
관련 문제