我如何阻止elasticsearch的分析解释yml

时间:2017-02-21 13:45:30

标签: elasticsearch yaml elasticsearch-5

我试图将_analyze api用于看起来像这样的文本:

--- some -- text ---

此请求按预期工作:

curl localhost:9200/my_index/_analyze -d '--'
{"tokens":[]}

但是,这个失败了:

curl localhost:9200/medical_documents/_analyze -d '---'
---
error:
  root_cause:
  - type: "illegal_argument_exception"
    reason: "Malforrmed content, must start with an object"
  type: "illegal_argument_exception"
   reason: "Malforrmed content, must start with an object"
status: 400

考虑到响应的格式,我假设elasticsearch试图将请求解析为yaml并失败。

如果是这种情况,我该如何禁用yml解析,或_analyze---开头的文字?

1 个答案:

答案 0 :(得分:1)

问题不在于yaml解析器。问题是你正在尝试创建一个类型 以下内容不正确
(将给您Malforrmed content, must start with an object error
curl localhost:9200/my_index/medical_documents/_analyze -d '---'

这将为您提供无错误,但不正确。因为它会告诉弹性来创造一种新型 curl localhost:9200/my_index/medical_documents/_analyze -d '{"analyzer" : "standard","text" : "this is a test"}'

创建分析器索引级别。验证:
curl -XGET 'localhost:9200/my_index/_settings'<br/>

所以正确的方法是: curl -XGET 'localhost:9200/my_index/_analyze' -d '{"analyzer" : "your_analyzer_name","text" : "----"}'
以前需要创建分析仪。