2016-06-16 3 views
1

elasticsearch가 url에서 검색어 cjk 문자를 지원하지 않습니까? 인덱스 (old_merge_result)의 필드 (이름)에 대해 용어 北京 (중국어로 베이징)를 쿼리해야합니다. 다음 쿼리가 작동하지 않는 것 같습니다. ES는 retur 것_search 탄성 검색의 CJK 용어

GET/old_merge_result/TEMPID/_search Q = 이름 :

ES가 반환 北京 :

{ 
 
    "statusCode": 400, 
 
    "error": "Bad Request", 
 
    "message": "child \"uri\" fails because [\"uri\" must be a valid uri]", 
 
    "validation": { 
 
     "source": "query", 
 
     "keys": [ 
 
     "uri" 
 
     ] 
 
    } 
 
}
대신

, 다음을 통해 쿼리는 정확히 반환 내가 원하는거야. ?

GET /old_merge_result/tempid/_search 
 
{ 
 
    "query": { 
 
    "term": { 
 
     "name": { 
 
     "value": "北京" 
 
     } 
 
    } 
 
    } 
 
}

그래서 old_merge_result/TEMPID/_search Q = 이름과 같은 URL을 통해 어떤 방식으로 쿼리가 : 北京?

답변

1

하나는 될 쿼리는 위의 예

을 매개 변수로 CJK 문자를 전달하는 percent-encoding/URL-encoding을 사용할 필요가 :

GET /old_merge_result/tempid/_search?q=name:%E5%8C%97%E4%BA%AC 
+0

감사합니다 많이! acceptI 그 쿼리가 플러그인 감각으로 만들어진 것을 깨닫고 브라우저처럼 urlencode를하지 않습니다. 감사. –

+0

확실히 np! 다행히 도왔다. – keety