2016-06-16 3 views
1

Есть ли elasticsearch не поддерживает запрос символа cjk в URL-адресе? Мне нужно запросить термин 北京 (Пекин на китайском языке) для поля (имя) в индексе (old_merge_result). Следующий запрос кажется неработоспособным. ES будет Ретур_search CJK term in elasticsearch

GET/old_merge_result/tempid/_search д = имя: 北京

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": "北京" 
 
     } 
 
    } 
 
    } 
 
}

Так есть ли способ запроса через URL, как old_merge_result/tempid/_search д = имя: 北京?

ответ

1

Нужно использовать percent-encoding/URL-encoding передать ККЯ символов в качестве параметров запроса

Для приведенного выше примера это будет:

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

Спасибо большое! acceptI Просто осознайте, что этот запрос сделан с помощью смысла плагина, и он не делает urlencode, как браузер. Благодарю. –

+0

уверенный np! рад, что это помогло. – keety

Смежные вопросы