2016-06-02 2 views
0

ElasticSearch의 쿼리 문자열 구문에서 작은 따옴표와 큰 따옴표의 차이점은 무엇입니까? 경우에 대비하여 용어가 잘못되어있는 경우 쿼리 문자열 구문을 참조 할 때 검색 탭에서 kibana의 검색 필드에 사용 된 구문을 참조하고 있습니다.ElasticSearch의 쿼리 문자열 구문에서 작은 따옴표와 큰 따옴표의 차이점은 무엇입니까?

색인이 분석되지 않은 문자열 python_type입니다.

1) python_type: typeA이 예상되는 문서

2) python_type: "typeA"도 예상 문서

3

) python_type: 'typeA' 아무것도 발견하지 발견을 찾습니다.

세 번째 쿼리 문자열이 결과를 반환하지 않는 이유는 무엇입니까? 쿼리 문자열은 작은 따옴표를 어떻게 해석합니까? 흥미로운 측면에서, 필드가 분석 될 때 세 개의 쿼리 문자열 모두가 예상 된 결과를 반환합니다.

감사합니다,

나단

답변

1

키바 입력 필드는 JSON 데이터를 기대하지 않지만, 당신이 입력 필드에 입력 무엇 query_string query syntax을 따라야합니다.

이 문서에서 알 수 있듯이 어디에서나 작은 따옴표가 없습니다. 즉, 쿼리 구문의 예약 된 문자가 아닙니다.

python_type:'typeA'를 쿼리 할 때, 키바는 ES에 보내는 query_string 쿼리는 다음과 같이 보일 것이다 : 그것은 잘못되지

{ 
    "query": { 
    "filtered": { 
     "query": { 
     "query_string": { 
      "query": "python_type:'typeA'", 
      "analyze_wildcard": true 
     } 
     } 
    } 
    } 
} 

을하지만, ES는 단일로, 'typeA'를 포함하는 python_field을 가진 문서를 확인합니다 인용 부호. 정확한 용어와 python_field을 가진 문서를 확인합니다 python_type:"typeA" 또는 python_type:typeA ES에 대한 쿼리 할 때 반면

typeA