Hi,
i created an index with round about 1 million entries with the massindexer. Now i perform a query on that, and i get the following exception:
Code:
org.hibernate.ObjectNotFoundException: No row with the given identifier exists: [some.package.path.to.an.Object#44151]
at org.hibernate.impl.SessionFactoryImpl$2.handleEntityNotFound(SessionFactoryImpl.java:447)
at org.hibernate.event.def.DefaultLoadEventListener.load(DefaultLoadEventListener.java:233)
at org.hibernate.event.def.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:269)
at org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:152)
at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:1080)
at org.hibernate.impl.SessionImpl.load(SessionImpl.java:977)
at org.hibernate.impl.SessionImpl.load(SessionImpl.java:970)
at org.hibernate.search.engine.ObjectLoaderHelper.returnAlreadyLoadedObjectsInCorrectOrder(ObjectLoaderHelper.java:101)
at org.hibernate.search.engine.MultiClassesQueryLoader.load(MultiClassesQueryLoader.java:124)
at org.hibernate.search.query.FullTextQueryImpl.list(FullTextQueryImpl.java:339)
...
If i perform the same query with luke on the same index, i get my results presented. The query is build and performed like this:
Code:
FullTextQuery ftQuery = fSession.createFullTextQuery(bq);
ftQuery.setMaxResults(1000);
List<Object> results = null;
try{
results = ftQuery.list();
} catch (ObjectNotFoundException onf){
myLogger.error("some error", onf);
}
(with bq being a stepwise build boolean query, with a lot of fields)
edit: btw, index is build this way (done within a thread for each class to index):
Code:
public void run(){
MassIndexer mi = fSession.createIndexer(indexClass);
mi.threadsToLoadObjects(5);
mi.batchSizeToLoadObjects(25);
mi.cacheMode(CacheMode.IGNORE);
mi.threadsForSubsequentFetching(20);
try{
mi.startAndWait();
} catch (InterruptedException ie){
myLogger.error("some error appeared", ie);
}
}
Could anybody tell me, why this happens?