尝试生成索引时出现Hibernate搜索异常
我正在尝试为hibernate OGM mongo DB应用程序添加hibernate搜索支持。当我尝试使用尝试生成索引时出现Hibernate搜索异常,hibernate,hibernate-search,hibernate-entitymanager,hibernate-ogm,Hibernate,Hibernate Search,Hibernate Entitymanager,Hibernate Ogm,我正在尝试为hibernate OGM mongo DB应用程序添加hibernate搜索支持。当我尝试使用fullTextEntityManager.createIndexer(Post.class)重建索引时,我经常遇到以下异常 .startAndWait()行 HSEARCH000058:HSEARCH000116:MassIndexer操作期间出现意外错误 java.lang.NoSuchMethodError:org.hibernate.search.engine.spi.Docume
fullTextEntityManager.createIndexer(Post.class)重建索引时,我经常遇到以下异常
.startAndWait()代码>行
HSEARCH000058:HSEARCH000116:MassIndexer操作期间出现意外错误
java.lang.NoSuchMethodError:org.hibernate.search.engine.spi.DocumentBuilderIndexedEntity.getIdPropertyName()Ljava/lang/String;
在org.hibernate.ogm.massindex.impl.TupleIndexer.idInString(TupleIndexer.java:128)~[hibernate-ogm-core-5.1.0.Final.jar:5.1.0.Final]
在org.hibernate.ogm.massindex.impl.TupleIndexer.createAddLuceneWork(TupleIndexer.java:119)~[hibernate-ogm-core-5.1.0.Final.jar:5.1.0.Final]
在org.hibernate.ogm.massindex.impl.TupleIndexer.index(TupleIndexer.java:109)~[hibernate-ogm-core-5.1.0.Final.jar:5.1.0.Final]
在org.hibernate.ogm.massindex.impl.TupleIndexer.index(TupleIndexer.java:89)~[hibernate-ogm-core-5.1.0.Final.jar:5.1.0.Final]
在org.hibernate.ogm.massindex.impl.TupleIndexer.runInNewTransaction(TupleIndexer.java:216)~[hibernate-ogm-core-5.1.0.Final.jar:5.1.0.Final]
在org.hibernate.ogm.massindex.impl.TupleIndexer.run(TupleIndexer.java:189)~[hibernate-ogm-core-5.1.0.Final.jar:5.1.0.Final]
在org.hibernate.ogm.massindex.impl.OptionallyWrapInJTATransaction.consume(OptionallyWrapInJTATransaction.java:104)~[hibernate-ogm-core-5.1.0.Final.jar:5.1.0.Final]
在org.hibernate.ogm.datastore.mongodb.MongoDBDialect.forEachTuple(MongoDBDialect.java:762)~[hibernate-ogm-mongodb-5.1.0.Final.jar:5.1.0.Final]
在org.hibernate.ogm.dialoge.impl.ForwardingGridDialogue.forEachTuple(ForwardingGridDialoge.java:168)[hibernate-ogm-core-5.1.0.Final.jar:5.1.0.Final]
在org.hibernate.ogm.massindex.impl.BatchIndexingWorkspace.run(BatchIndexingWorkspace.java:77)[hibernate-ogm-core-5.1.0.Final.jar:5.1.0.Final]
位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[na:1.8.060]
在java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)[na:1.8.060]
在java.lang.Thread.run(Thread.java:745)[na:1.8.0_60]
我的配置如下。
ORM层中的POM文件:
持久性xml:
<?xml version="1.0"?>
已为使用hibernate OGM插入的记录生成索引。但无法重新索引数据库中的现有记录。如果您能给我任何解决这个问题的建议,我将不胜感激 很可能您使用了错误的Hibernate搜索版本。据我所见,这个版本的OGM应该与HibernateSearch 5.6.1.Final一起使用
您是否考虑过使用Hibernate OGM BOM以避免此类问题?如果您这样做了,那么对于Hibernate OGM及其依赖项,POM中只需要此代码段:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.hibernate.ogm</groupId>
<artifactId>hibernate-ogm-bom</artifactId>
<version>5.1.0.Final</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.hibernate.ogm</groupId>
<artifactId>hibernate-ogm-mongodb</artifactId>
</dependency>
</dependencies>
org.hibernate.ogm
.很可能您使用了错误的Hibernate搜索版本。据我所见,这个版本的OGM应该与HibernateSearch 5.6.1.Final一起使用
您是否考虑过使用Hibernate OGM BOM以避免此类问题?如果您这样做了,那么对于Hibernate OGM及其依赖项,POM中只需要此代码段:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.hibernate.ogm</groupId>
<artifactId>hibernate-ogm-bom</artifactId>
<version>5.1.0.Final</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.hibernate.ogm</groupId>
<artifactId>hibernate-ogm-mongodb</artifactId>
</dependency>
</dependencies>
org.hibernate.ogm
.非常感谢。切换到Hibernate Search 5.6.1.Final版本解决了这个问题。我从来不知道Hibernate OGM BOM,我期待着使用它。再次感谢。你救了我一天!谢谢。切换到Hibernate Search 5.6.1.Final版本解决了这个问题。我从来不知道Hibernate OGM BOM,我期待着使用它。再次感谢。你救了我一天!
<persistence-unit name="ogm-jpa-tutorial" transaction-type="RESOURCE_LOCAL">
<!-- Use Hibernate OGM provider: configuration will be transparent -->
<provider>org.hibernate.ogm.jpa.HibernateOgmPersistence</provider>
<class>test.y.model.Post</class>
<properties>
<property name="hibernate.ogm.datastore.provider" value="mongodb" />
<!--<property name="hibernate.transaction.jta.platform" value="org.hibernate.service.jta.platform.internal.JBossStandAloneJtaPlatform" />-->
<property name="hibernate.ogm.datastore.create_database" value="true"/>
<property name="hibernate.ogm.datastore.database" value="blog_db"/>
<property name="hibernate.search.default.directory_provider" value="filesystem"/>
<property name="hibernate.search.default.indexBase" value="/home/yasitha/lucene/indexes"/>
</properties>
</persistence-unit>
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Type(type = "objectid")
private String id;
@Field(index = Index.YES, analyze = Analyze.YES, store = Store.YES)
@Column(name = "headline")
private String title;
@Column(name = "content")
private String description;
@Column(name = "imgUrl")
private String imgUrl;
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.hibernate.ogm</groupId>
<artifactId>hibernate-ogm-bom</artifactId>
<version>5.1.0.Final</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.hibernate.ogm</groupId>
<artifactId>hibernate-ogm-mongodb</artifactId>
</dependency>
</dependencies>