我爬了几个文档并在弹性搜索中创建了一个索引。我正在使用 sense 来查询:
这是我在弹性搜索中的查询:
POST /index/_update_by_query
{
"script": {
"inline": "ctx._source.remove(\"home\")"
},
"query": {
"wildcard": {
"url": {
"value": "http://search.com/*"
}
}
}
}
这是我的 Java 程序:
Client client = TransportClient.builder().addPlugin(ReindexPlugin.class)
.build().addTransportAddress(new InetSocketTransportAddress(
InetAddress.getByName("127.0.0.1"), 9300));
UpdateByQueryRequestBuilder ubqrb = UpdateByQueryAction.INSTANCE
.newRequestBuilder(client);
Script script1 = new Script("ctx._source.remove" +FieldName);
BulkIndexByScrollResponse r = ubqrb.source("index").script(script1)
.filter(wildcardQuery("url", patternvalue)).get();
FieldName(home 保存为字符串)是我要从文档中删除的字段的名称。patternvalue 是存储模式“ http://search.com/ *”的位置。当我运行这个 Java 程序时,它不会从我的文档中删除 home 字段。它在我的文档中添加了一个名为 remove 的新字段。我可能会遗漏一些东西。任何帮助,将不胜感激