处理弹性搜索中的特殊字符

时间:2016-06-26 03:19:49

标签: elasticsearch

我正在使用批量API 从文件加载数据并正确导入。唯一的问题是,如果存在像\"这样的转义字符,则按原样导入。

我想删除斜杠并将result字典保存为对象或嵌套文档。

{
  "req_id": "25cc4d-9cd6-499f-a439-c9",
  "time": 109,
  "result": "{\"ReceiveReturn\":\"00\"}",
  "level": "info",
  "message": "time taken for request",
  "timestamp": "2015-04-17 23:59:59"
}

是否可以删除转义字符?

更新

这是一个例子......

DELETE /test_index

POST /test_index/myid/
{"_uid":1234,"id":1,"name":"someName","newProperty":"some \" and some text\"Value","status":0}

POST /test_index/_search

正如您在结果中所看到的,有一个双引号。无论如何在插入数据之前删除所有转义字符?

1 个答案:

答案 0 :(得分:1)

您正在做的事情是正确的。实际上Elasticsearch使用settings' from /usr/local/Cellar/ruby/2.1.5/lib/ruby/gems/2.1.0/gems/bundler-1.12.0.rc.3/lib/bundler/env.rb:28:in以正确的方式存储文档。但是,当您使用HTTP工具运行查询时,request_issue_report_for' from /usr/local/Cellar/ruby/2.1.5/lib/ruby/gems/2.1.0/gems/bundler-1.12.0.rc.3/lib/bundler/friendly_errors.rb:40:in是一个JSON特殊字符,您会看到rescue in with_friendly_errors' from /usr/local/Cellar/ruby/2.1.5/lib/ruby/gems/2.1.0/gems/bundler-1.12.0.rc.3/lib/bundler/friendly_errors.rb:98:in。如果您在Google Chrome浏览器上使用 JSONView 查看文档,则可以看到如下实际数据:

<main>'
           run  bundle exec spring binstub --all
  /usr/local/Cellar/ruby/2.1.5/lib/ruby/gems/2.1.0/gems/bundler-1.12.0.rc.3/lib/bundler/settings.rb:229:in