elasticsearch ES7使用查询端点更新,基于每个文档的索引值,使用上下文字段更新新的完成

hfyxw5xn  于 2022-11-22  发布在  ElasticSearch
关注(0)|答案(1)|浏览(123)

我正在尝试更新ES索引中的值,该索引被Map为具有用于筛选的上下文的完成字段。
我想根据文档中已有的值插入值。
我尝试了这个方法,它没有像预期的那样工作,因为它只接受字符串,而不是值,这是预期的,但我还是尝试了:

{
    "script": {
        "inline": "ctx._source.suggest_test = params.newProp",
        "params": {
            "newProp": {
                "input": "ctx._source.search_text",
                "contexts": {
                    "type": ["ctx._source.type"]
                }
            }
        }
    }
}

还有这个,它的多个版本,所有的都返回错误

{
    "script": "ctx._source.search_text_completion = {\"input\":[ctx._source.search_text],\"contexts\":{\"type\": [ctx._source.type]}}"
}

有没有办法做到这一点,或者我必须重新索引一切?

ha5z0ras

ha5z0ras1#

您必须这样做(带方括号):

"script": "ctx._source.search_text_completion = ['input':[ctx._source.search_text],'contexts':['type': [ctx._source.type]]]"

相关问题