休眠搜索配置

问题描述 投票:0回答:2

我使用休眠搜索和弹性搜索作为后端。当我在xml文件中配置hibernate和hibernatesearch时,一切正常,但是当我在java类中对其进行配置时,会出现此警告,并且在搜索中未找到任何内容。xml配置为:

<properties>
        <property name="hibernate.connection.url" value="jdbc:mysql://localhost:3399/elastic" />
        <property name="hibernate.connection.username" value="admin" />
        <property name="hibernate.connection.password" value="admin" />

        <property name="hibernate.show_sql" value="true" />

        <property name="hibernate.search.default.indexmanager" value="elasticsearch"/>
        <property name="hibernate.search.default.elasticsearch.host" value="http://127.0.0.1:9400"/>
        <property name="hibernate.search.default.elasticsearch.index_schema_management_strategy" value="CREATE"/>
        <property name="hibernate.search.default.elasticsearch.required_index_status" value="YELLOW"/>

    </properties>

java类的配置是:

java.util.Properties settings = new java.util.Properties();
            settings.put(org.hibernate.cfg.Environment.DRIVER, "com.mysql.cj.jdbc.Driver");
            settings.put(org.hibernate.cfg.Environment.URL, "jdbc:mysql://127.0.0.1:3399/elastic");
            settings.put(org.hibernate.cfg.Environment.USER, "admin");
            settings.put(org.hibernate.cfg.Environment.PASS, "admin");
           settings.put(org.hibernate.cfg.Environment.DIALECT,"org.hibernate.dialect.MySQL8Dialect");
            settings.put(org.hibernate.cfg.Environment.SHOW_SQL, "true");
            settings.put(org.hibernate.cfg.Environment.CURRENT_SESSION_CONTEXT_CLASS, "thread");
            settings.put(org.hibernate.cfg.Environment.POOL_SIZE, "5");
settings.put("hibernate.search.default.indexmanager", "elasticsearch");
            settings.put("hibernate.search.default.elasticsearch.host", "http://127.0.0.1:9400");
            settings.put("hibernate.search.default.elasticsearch.index_schema_management_strategy", "CREATE");
            settings.put("hibernate.search.default.elasticsearch.required_index_status", "YELLOW");

警告是:

[警告​​:请求[HEAD http://127.0.0.1:9400/com.radar.elasticsearch.videogame]返回1条警告:[299 Elasticsearch-6.8.0-65b6179“ [类型删除]参数include_type_name应该在为准备7.0的获取索引请求中明确指定。在7.0中include_type_name将默认为'false',这意味着响应将在映射定义中忽略类型名称。“]

java elasticsearch hibernate-search elasticsearch-mapping
2个回答
0
投票

您使用的是不建议使用types的Elasticsearch 6.8。有关更多信息,请参考removal of types,>

您需要传递_doc而不是类型名称,否则,如果您在所有API中都使用自己的include_type_name名称,请使用type

请参阅this官方博客以获取更多信息

如果您计划在不停机的情况下进行滚动升级,应该首先升级到6.8,这是唯一具有的6.x版本一些功能,例如对include_type_name参数的支持,需要顺利升级到7.0。


0
投票

Hibernate Search 5中的Elasticsearch支持是实验性的,仅在Elasticsearch 5.6版之前进行了测试。

© www.soinside.com 2019 - 2024. All rights reserved.