Elasticsearch 5.2 上下文建议类型定义 - 错误

Elasticsearch 5.2 Context Suggester Type Definition - Error

我在 Elasticsearch 5.2 中定义上下文建议器时遇到问题

我是这样尝试的:

curl -XPUT 'localhost:9200/world/port/_mapping' -d '{
"port": {

"properties": {
   "name": {
      "type": "string"
   },
   "suggest": {
      "type": "completion",
      "analyzer": "simple",
      "payloads": true,
      "preserve_separators": true,
      "preserve_position_increments": true,
      "max_input_length": 50,
      "contexts": {
         "type": {
            "name": "port_type",
            "type": "category",
            "path": "name"
         }
      }
   }
}

}
}'

我试过这些参数,但它总是以错误结束:

{
"error":
{
"root_cause":
  [{"type":"parse_exception","reason":"missing [name] in context mapping"}],
"type":"parse_exception","reason":"missing [name] in context mapping"
},
"status":400
}

我试图通过谷歌搜索解决它,但没有成功。

消息指的是什么名字?

你能帮帮我吗?

以下是一些精彩瞬间:

  • context 应该是一个 JSON 数组
  • 它的元素应该只是 JSON 字典
  • 顺便说一句,什么是 "payload": true - 我相信这是一项可以删除的不必要的项目。

在深入研究之后,我使用以下命令实现了它:

curl -XPUT 'localhost:9200/world' -d '
{
  "mappings" : {
    "port": {
      "properties": {
        "name": {
          "type": "string"
        },
        "suggest": {
          "type": "completion",
          "analyzer": "simple",
          "preserve_separators": true,
          "preserve_position_increments": true,
          "max_input_length": 50,
          "contexts": [
            {
              "name": "port_type",
              "type": "category",
              "path": "name"
            }
          ]
        }
      }
    }
  }
}'