我正在尝试将_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" : "----"}'
以前需要创建分析器。