我正在执行一项维护任务,该任务将拦截ES索引操作,并且在某些情况下会更改字段的内容。
我的问题是:如何处理文件?有一个index.docs()方法。例如,我获取第一个(也是唯一一个)文档,添加一个字段,然后希望将其保留,但是不幸的是,该字段不会被设置或删除。
例:
indexingService.addListener(new IndexingOperationListener() {
@Override
public Index preIndex(Engine.Index index) {
List<Document> docs = index.docs();
List<Document> finalDocs = new ArrayList<Document>();
for (Document d : docs) {
d.removeField("field1");
finalDocs.add(d);
}
index.docs().clear();
index.docs().addAll(finalDocs);
return index;
}
});
我做错了什么?被删除的字段将不会被持久化:(
感谢您的提示!
尽管这IndexingOperationListener
并不是要修改文档,但是代码看起来不错。唯一的事情是您只修改了已建立索引的lucene文档,其中不包含要删除的字段。如果您不想在源代码中使用它,也必须修改源代码。但我认为,即使您在文档中看到了该字段,也无法对其进行实际搜索,因为它不是在lucene中。如果可以搜索并获得结果,则需要确保您的自定义代码确实在运行。
另外,您无需清除列表并再次添加所有文档。您只需要修改循环中的文档即可。
Elasticsearch 来源于作者 Shay Banon 的第一个开源项目 Compass 库,而这个 Java 库最初的目的只是为了给 Shay 当时正在学厨师的妻子做一个菜谱的搜索引擎。2010 年,Elasticsearch 正式发布。至今已经成为 GitHub 上最流行的 Java 项目,不过 Shay 承诺给妻子的菜谱搜索依然没有面世…… 2015 年初,Elasticsearch
Elasticsearch是一个基于Lucene的实时分布式的搜索与分析引擎。 Elasticsearch是一个基于Lucene的实时分布式的搜索与分析引擎,集成了安全、SQL、机器学习、告警、监控等高级特性,被广泛应用于实时日志分析处理、信息检索、以及数据的多维查询和统计分析等场景。 目前仅支持只读对接腾讯云的Elasticsearch。 入口:在云管平台单击左上角导航菜单,在弹出的左侧菜单栏中
ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。 使用 首先需要引入 Guzzle-Swoole: composer require yurunsoft/guzzle-swoole 实例化
Elastic Stack Overview 多节点 Elasticsearch 集群部署 RPM 安装1. 环境准备(1 master/ingress node, 2 data node) // 2 data node, 1 master/ingress node $ for i in master data01 data02 ; do ssh $i.mylabserver.com 'hostn
Elasticsearch 是一个分布式的 RESTful 风格的搜索和数据分析引擎,能够解决越来越多的用例。作为 Elastic Stack 的核心,它集中存储您的数据,帮助您发现意料之中以及意料之外的情况。 Elasticsearch 是一个实时的分布式搜索分析引擎, 它能让你以一个之前从未有过的速度和规模,去探索你的数据。 它被用作全文检索、结构化搜索、分析以及这三个功能的组合: Wikip
问题内容: 我们在那里有一个新项目,用于索引大量数据并提供实时数据。我还搜索了方面,全文,地理空间… 第一个原型是在MongoDB中建立索引,其次是在Elasticsearch中建立索引,因为我已经阅读到Elasticsearch不会对存储的文件应用校验和,并且该索引不能被完全信任。但是自从上一版本(在1.5版中)以来,现在有了一个校验和,我在猜测是否可以将Elasticsearch用作主要数据存