弹性搜索使用文档

时间:2019-01-16 14:12:52

标签: elasticsearch mapping word elasticsearch-5

我想添加一个字段B,该字段应包含带有字段A单词的数组。我想使用某种脚本将字段A的值分解为单词部分。

所以是这样的: 场-答:“快棕色狐狸” 栏位B:[“ The”,“ Quick”,“ Brown”,“ Fox”]

我正在努力寻找如何在ElasticSearch 5.6中实现这一目标

1 个答案:

答案 0 :(得分:1)

您可以使用update by query API和一个脚本来实现此目的,该脚本将fieldA拆分并将结果数组存储到fieldB中:

POST test/_update_by_query
{
  "script": {
    "inline": "ctx._source.fieldB = /\\s+/.split(ctx._source.fieldA);",
    "lang": "painless"
  },
  "query": {
    "match_all": {}
  }
}

您会得到的:

    {
      "fieldA" : "The brown fox",
      "fieldB" : [
        "The",
        "brown",
        "fox"
      ]
    }