我正在尝试将_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---开头的文本?

最佳答案

问题不是yaml解析器。问题是您正在尝试创建类型。
以下是不正确的(将为您提供Malforrmed content, must start with an object error)curl localhost:9200/my_index/medical_documents/_analyze -d '---'这将使您没有错误,但是不正确。因为它将告诉 flex 创建一个新类型。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" : "----"}'以前需要创建分析器。

10-07 11:59