gpt4 book ai didi

elasticsearch - Elasticsearch-如何添加术语

转载 作者:行者123 更新时间:2023-12-02 22:19:40 26 4
gpt4 key购买 nike

有没有一种方法可以将条件附加到值数组中?

例如,如果我的文档如下所示:

{
"items": ["item1", "item2", "item3"]
}

我想在其后面附加“item4”和“item5”。

我必须在2个查询中这样做吗?一个加载当前值列表,然后更新该列表?还是有一种更优雅的方式让我在一个查询中附加这些项目?

我正在尝试使用Elastic4s做到这一点:
client.execute(ElasticDsl.update id id in indexName / documentType script {
script(s"ctx._source.items += tag").params(Map("tag"->"item4"))
})

为了使用上面的代码片段,我需要启用groovy脚本,而且我不确定如何对多个项目进行操作。

任何的想法?

最佳答案

这是如何实现此目的的完整示例。

合并新值到数组,并在之后使其唯一:

DELETE test/test/1

POST test/test/1
{
"terms":["item1", "item2", "item3"]
}

GET test/test/1

POST test/test/1/_update
{
"script" : " ctx._source.terms << newItems; ctx._source.terms = ctx._source.terms.flatten().unique()",
"params" : {
"newItems" : ["a","b"]
}
}

确保在服务器配置中启用了 scripting
user:/etc/elasticsearch# head elasticsearch.yml 
script.inline: true
script.indexed: true
...

关于elasticsearch - Elasticsearch-如何添加术语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36310693/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com