Hibernate Search 6.0.2.Final 与 opendistro

Hibernate Search 6.0.2.Final with opendistro

我有一个 Spring Boot 2.4.2 应用程序与 Hibernate Search 6.0.2.Final

集成

使用标准 elasticsearch 时,在持久化新实体时一切正常 (read/write)。索引也会根据默认 simple 索引策略按预期 myindex-000001 创建。

但是,当我将后端切换到 opendistro(最新)时,我只看到一个由名称 myindex-write 创建的索引(与预期的 myindex-000001 不同)。 写入操作按预期正常工作(由于后缀 -write),但是读取操作失败并出现错误:

root_cause": [
      {
        "type": "index_not_found_exception",
        "reason": "no such index [myindex-read]",
        "resource.type": "index_or_alias",
        "resource.id": "myindex-read",
        "index_uuid": "_na_",
        "index": "myindex-read"
      }
    ]

GET /_cat/aliases on opendistro 显示索引没有别名。

解决此问题的最佳方法是什么? no-alias 显示策略 here?使用 no-alias 的缺点是缺乏像重新索引这样的蓝绿部署。 custom 索引策略是解决这个问题的最佳方法吗?

以上问题都是因为我将hibernate.search.schema_management.strategy设置为none造成的。索引需要手动创建,如文档中所述 here