当前位置: 首页 > 面试题库 >

Elasticsearch-preIndex

钱焕
2023-03-14
问题内容

我正在执行一项维护任务,该任务将拦截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用作主要数据存