gpt4 book ai didi

java - 使用 Java 在 elasticsearch 中更新多个文档。我正在使用 Elasticsearch 2.3.2

转载 作者:行者123 更新时间:2023-11-30 08:02:03 25 4
gpt4 key购买 nike

我想使用 Java Api 使用特定字段更新我的一些索引数据。我已经引用了这份文件https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/java-docs-update.html并创建了一个java程序。我的 Java 程序如下所示:

public class App {

public static void main(String[] args) throws Exception {
Client client = TransportClient.builder().build().addTransportAddress(
new InetSocketTransportAddress(InetAddress.getByName("127.0.0.1"),
9300));
UpdateRequest updateRequest = new UpdateRequest("pibindex", "SearchTech",
"http://www.sea.com/bundle")
.script(new Script("ctx._source.default_collection = \"true\""));
client.update(updateRequest).get();
}
}

此程序正在更新基于脚本的单个文档。 “pibindex”是我的索引名称,“SearchTech”是我的索引类型,“http://www.sea.com/bundle”是我的文档的 ID。我想用新字段“wiki_collection”更新多个文档:true 匹配“http://www.sea.com/bundle”等模式。我想使用通配符查询。

我正在尝试用 Java 实现这个 elasticsearch 查询:

POST /pibindex2/_update_by_query
{
"script": {
"inline": "ctx._source.wiki_collection=true"
},
"query": {
"wildcard": {
"url": {
"value": "http://www.sea.com/bundle/*"
}
}
}
}

抱歉,如果我遗漏了一些明显的东西。谢谢。

最佳答案

你可以这样试试:

import static org.elasticsearch.index.query.QueryBuilders.wildcardQuery;

BulkIndexByScrollResponse r = ubqrb.source("twitter")
.script(script)
.filter(wilcardQuery("url", "http://www.sea.com/bundle/*"))
.get();

尽管结果将取决于您的 url 字段是否被分析。

关于java - 使用 Java 在 elasticsearch 中更新多个文档。我正在使用 Elasticsearch 2.3.2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37197888/

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