elasticsearch - _search Elasticsearch中的CJK术语

标签 elasticsearch

Elasticsearch不支持url中的查询cjk字符吗?
我需要在索引(old_merge_result)中查询术语“北京”(中文)。以下查询似乎不起作用。 ES会退缩

GET / old_merge_result / tempid / _search?q = name:北京

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?q = name:北京?

最佳答案

需要使用percent-encoding/URL-encoding传递cjk字符作为查询参数

对于上面的示例,它将是:

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

关于elasticsearch - _search Elasticsearch中的CJK术语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37849082/

相关文章:

elasticsearch - 如何生成 gce 凭据

elasticsearch - 使用其他搜索对弹性结果进行后处理(从Solr迁移)

elasticsearch - 如何更新elasticsearch中字段的数据类型

php - Elasticsearch php : aggregations of documents with date interval

elasticsearch - 在自定义应用程序中集成 kibana

elasticsearch - Elasticsearch是否支持这种查询?

python - Spark并没有采用所有索引内容

ElasticSearch:_score 字段上的聚合?

elasticsearch - 在 Elasticsearch 中的一个查询中搜索父级及其所有子级

database - Elasticsearch Date直方图存储桶从错误的日期开始