Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
hibernate search for elasticsearch with JPA无法在JPA创建实体时自动创建索引_Hibernate_Jpa_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Hibernate Search - Fatal编程技术网 elasticsearch,hibernate-search,Hibernate,Jpa,elasticsearch,Hibernate Search" /> elasticsearch,hibernate-search,Hibernate,Jpa,elasticsearch,Hibernate Search" />

hibernate search for elasticsearch with JPA无法在JPA创建实体时自动创建索引

hibernate search for elasticsearch with JPA无法在JPA创建实体时自动创建索引,hibernate,jpa,elasticsearch,hibernate-search,Hibernate,Jpa,elasticsearch,Hibernate Search,我正在使用hibernate搜索elasticsearch,hibernate文档告诉我们 当我们使用jpa创建实体时,索引将自动创建。我发现我的程序已成功创建实体,但未创建索引 为了使用hibernate search和es,我导入hibernate search elasticsearch jar <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernat

我正在使用hibernate搜索elasticsearch,hibernate文档告诉我们 当我们使用jpa创建实体时,索引将自动创建。我发现我的程序已成功创建实体,但未创建索引

为了使用hibernate search和es,我导入hibernate search elasticsearch jar

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-search-elasticsearch</artifactId>
    <version>5.6.0.Final</version>
</dependency>
这就是我所有的配置,我想在使用JPA save方法创建实体时休眠搜索自动创建索引,但不是


谢谢。

使用此属性启用Elasticsearch indexmanager时:

<property name="hibernate.search.default.indexmanager" value="elasticsearch"/>

这将获得在Elasticsearch上创建的索引,而不是本地Lucene索引

基本上,这些其他选项被忽略:

<property name="hibernate.search.default.directory_provider" value="filesystem"/>
<property name="hibernate.search.default.indexBase" value="/Users/yybbk/index"/>

Hibernate搜索应该已经在Elasticsearch上自动创建了索引。
您应该能够使用指向的浏览器(其中“group”是索引名,我从@Indexed注释中复制了该名称)检查是否正确。

为了让Hibernate搜索插入Hibernate ORM,并在实体持久化时为其编制索引,您还需要添加
org.hibernate:hibernate搜索orm
模块作为项目的依赖项:

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-search-orm</artifactId>
    <version>5.6.0.Final</version>
</dependency>

org.hibernate
休眠搜索orm
5.6.0.1最终版本

可能缺少此依赖项?

谢谢Sanne。我移动了目录提供程序和indexBase属性,离开indexmanager属性,但仍然无法创建索引。您如何知道没有索引?你有什么错误吗?我浏览了一下,它告诉我:index\u not\u found\u exception,它的状态是404。我的项目是一个旧项目,它使用的是hibernate core 4.3.8,如果我使用hibernate search orm 5.6.0.Final,将会出现一些错误。因此,我不使用hibernate search orm,直接使用hibernate search elasticsearch。@diligent您必须使用hibernate search orm才能自动为hibernate实体编制索引。@diligent另外,请注意hibernate search 5.6只支持hibernate Core 5.0和5.1版。恐怕您必须升级您的Hibernate Core版本(无论如何这将是一件好事),否则您将无法使用Hibernate搜索。是的,我升级了Hibernate版本,并导入了Hibernate搜索orm,它工作正常。
<property name="hibernate.search.default.directory_provider" value="filesystem"/>
<property name="hibernate.search.default.indexBase" value="/Users/yybbk/index"/>
<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-search-orm</artifactId>
    <version>5.6.0.Final</version>
</dependency>