Elasticsearch - preIndex

2023-12-27

我正在执行提到的维护任务,该任务将拦截 ES 索引操作,并在某些情况下更改字段的内容。

我的问题是:我如何操作这些文档?有一个index.docs()方法。例如,我获取第一个(也是唯一一个)文档,添加一个字段,然后希望它被持久化,但不幸的是,该字段不会被设置/或删除。

Example:

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 中。如果您可以搜索它并获得结果,那么您需要确保您的自定义代码实际运行。

此外,您不需要清除列表并再次添加所有文档。您只需修改循环中的文档即可,仅此而已。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Elasticsearch - preIndex 的相关文章

随机推荐

  • C 中的 for 循环和 getchar()

    为什么代码偶数次直接获取到空数据 我不知道发生了什么事 非常感谢 include
  • 将 HTML 表单中的用户输入作为 Python 脚本的变量 [重复]

    这个问题在这里已经有答案了 我正在 Python Flask 中创建一个 Web 应用程序 以使用 tweepy 使用 twitters API 显示推文 我已经设置了一个 HTML 表单 并获得了用于查找具有特定输入的推文的脚本 目前 这
  • ImageButton 位于 ImageView 后面并偏移

    因此 我正在为我的应用程序进行设计 我需要将图像按钮直接放在图像视图下方 但由于我的图像视图周围有一个带有阴影的边框 我需要将图像按钮隐藏 向上移动 在图像视图后面大约 10 个像素 这是我想要的快速绘图 我希望这是有道理的 我一直在尝试各
  • ToString 和字符串连接 - 意外行为

    根据互联网 当你这样做时 String someString object1 object2 object3 ToString 在每个对象上调用 但这并没有发生 这段代码 String a a foo String b b foo ToSt
  • 为什么我在 Minikube 上收到“未绑定的立即 PersistentVolumeClaims”?

    我得到 pod 有未绑定的立即 PersistentVolumeClaims 我不知道为什么 我在 macOS 上运行 minikube v0 34 1 以下是配置 es pv yaml apiVersion v1 kind Persist
  • SwiftUI:点击时更改列表行突出显示颜色

    点击时列表行的默认颜色为灰色 我知道如何使用 listRowBackground 更改背景颜色 但随后它会更改为整个列表 如何在点击时更改为自定义颜色 以便只有点击的行保持红色 import SwiftUI struct ExampleVi
  • 当涉及协调器时,如何在 SwiftUI 视图与另一个视图之间进行通信?

    我是 SwiftUI 新手 才几天努力学习 我试图找到这方面的教程 但没有成功 想象一下我有以下观点 Struct MyPicker View MyPicker是在一个里面VStack inside ContentView 我必须通过 从M
  • 创建表时“关系中缺少列”

    我尝试创建三个表 CUSTOMERS VEHICLES 和 RENTALS 第三个表 RENTALS 的外键引用前两个表 CUSTOMERS 和 RENTALS 的两个主键 创建第三个表时出现错误关系中缺少列 Rel CUSTOMERS g
  • 短小精悍地插入一个列表?

    我想做批量插入 A 是一个 ID B 是 ID 列表 我的插入语句看起来像这样 但它是错误的 我如何重写它才能工作 我能想到的唯一解决方案是在语句之 外使用 foreach 循环 Execute insert into MyTable a
  • Android 谷歌地图获取边界坐标

    我在我的应用程序中使用 Google 地图 v2 当用户平移或缩放屏幕时 我想获取地图区域 根据该区域我只想在屏幕视图部分获取 POI 我浏览了文档但找不到任何帮助 你需要使用Projection https developers goog
  • 如何在张量流上加载和使用保存的模型?

    我找到了两种在 Tensorflow 中保存模型的方法 tf train Saver and SavedModelBuilder 然而 我找不到有关使用该模型的文档以第二种方式加载后 注 我想用SavedModelBuilder方式 因为我
  • async/await for Compact Framework v3.5 - 手动实现

    我必须为 WinCE 5 0 开发一个应用程序 它与常规 PC 应用程序通信 同步数据 该应用程序提供我可以与我的移动 工业 设备通信的 Web 服务 由于很明显会导致代码难以在移动设备端维护 检查连接 完成时 检查网络服务可用性 完成时
  • SSL + 附加加密层

    我想知道如果客户要求在 SSL 之上进行第二层加密该怎么办 例如 我有一个 SSL 隧道 客户希望我对流经该隧道的数据使用对称密钥加密 对称密钥是基于会话的 并通过原始 SSL 隧道从服务器发送到客户端 我不明白这如何更安全 如果 SSL
  • Google Play 推荐流程仍为空

    如图所示http android developers blogspot de 2013 10 improved app insight by linking google html http android developers blog
  • c3js - X 轴位于图表中间

    X轴可以在图的中间吗 当 Y 值既有负值又有正值时 并且 X 轴位于 0 值上可以说类似于这张图片 将 C3 x 轴定位在所需的 y 值 Method 1
  • 如何向注入器添加另一个提供者?

    与框架无关的表达这个问题的方式是 如何使用服务定位器注册另一个服务 注入器被设置为不可变的 无论是接口还是实现 interface Injector abstract get token any notFoundValue any any
  • 如何正确地将自定义视图添加到工具栏?

    我正在使用具有扩展高度 56dp 80dp 的工具栏 并且想要将 EditText 添加到工具栏的底部 我遇到的问题是 EditText 不会将自身扩展到右边缘 如下图所示 代码如下所示 工具栏 编辑 文本 xml
  • 如何使用带有基本身份验证的 JQuery 进行 JSONP 调用?

    使用 JQuery 我如何调用需要基本身份验证的 JSONP API 我可以通过编程方式处理这个问题 还是用户必须进行交互并在登录对话框中输入用户名和密码 JSONP 请求不使用 XMLHttpRequest 对象 系统 因此没有办法直接做
  • 当只有一个单元格时,单元格位于集合视图的中心

    我想从左到右布局单元格 所以我使用UICollectionViewFlowLayout UICollectionViewFlowLayout layout UICollectionViewFlowLayout alloc init use
  • Elasticsearch - preIndex

    我正在执行提到的维护任务 该任务将拦截 ES 索引操作 并在某些情况下更改字段的内容 我的问题是 我如何操作这些文档 有一个index docs 方法 例如 我获取第一个 也是唯一一个 文档 添加一个字段 然后希望它被持久化 但不幸的是 该