-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 4 posts ] 
Author Message
 Post subject: Lucene search returns no result
PostPosted: Wed Aug 21, 2013 10:33 am 
Beginner
Beginner

Joined: Thu Jul 11, 2013 7:58 am
Posts: 22
I am trying to create a hibernate full text search using hibernate-search-4.3.0.Final.jar There is no errors in this application, but my Lucene query unsing the query DSL doesn't return any results. I mean It doesn't return any of rows in the table. can any one please help me.

This is my function:

Code:
OgmConfiguration cfgogm=new OgmConfiguration();
        cfgogm.configure("hibernate.cfg.xml");
        serviceregistry=new ServiceRegistryBuilder().applySettings(cfgogm.getProperties()).buildServiceRegistry();
        sessionfactory=cfgogm.buildSessionFactory(serviceregistry);         
        Session session= sessionfactory.openSession();


        FullTextSession fulltextsession= Search.getFullTextSession(session);
        QueryBuilder querybuilder=fulltextsession.getSearchFactory().buildQueryBuilder().forEntity(User.class).get();
        org.apache.lucene.search.Query lucenequery=querybuilder.keyword().onField("IdU").matching("96645").createQuery();
        org.hibernate.search.FullTextQuery fulltextquery=fulltextsession.createFullTextQuery(lucenequery, User.class);
        List result=fulltextquery.list();
        System.out.println(result.toString());


and this is my POJO class:

Code:
@Entity
@Table(name="Users")
@Indexed
public class User {
    @Id
    @GeneratedValue(generator="mongodb_uuidgg")
    @Field(index = Index.YES,analyze = Analyze.NO,store = Store.NO)
    private String  _id;
    @Column(name="City")
    @Field(index = Index.YES,analyze = Analyze.NO,store = Store.NO)
    private String city;
    @Column(name="UserID")
    @Field(index = Index.YES,analyze = Analyze.NO,store = Store.NO)
    private int IdU;
...


Top
 Profile  
 
 Post subject: Re: Lucene search returns no result
PostPosted: Mon Sep 02, 2013 10:52 am 
Hibernate Team
Hibernate Team

Joined: Sat Jan 24, 2009 12:46 pm
Posts: 388
Hi,

your property "IdU" is of type int, but you query on it using a String: ... .matching("96645"). ... You should get results when passing an int to matching().

--Gunnar

_________________
Visit my blog at http://musingsofaprogrammingaddict.blogspot.com/


Top
 Profile  
 
 Post subject: Re: Lucene search returns no result
PostPosted: Mon Sep 02, 2013 11:00 am 
Beginner
Beginner

Joined: Thu Jul 11, 2013 7:58 am
Posts: 22
Hi Gunnar,

thank you so much for your answer. If I change my code to:

Code:
org.apache.lucene.search.Query lucenequery=querybuilder.keyword().onField("UserID").matching(new Integer(106663)).createQuery();


I get an exception Like this:
Code:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
   at org.hibernate.engine.jdbc.internal.proxy.AbstractStatementProxyHandler.<init>(AbstractStatementProxyHandler.java:57)
   at org.hibernate.engine.jdbc.internal.proxy.PreparedStatementProxyHandler.<init>(PreparedStatementProxyHandler.java:50)
   at org.hibernate.engine.jdbc.internal.proxy.ProxyBuilder.buildPreparedStatement(ProxyBuilder.java:187)
   at org.hibernate.engine.jdbc.internal.proxy.ConnectionProxyHandler.postProcess(ConnectionProxyHandler.java:167)
   at org.hibernate.engine.jdbc.internal.proxy.ConnectionProxyHandler.continueInvocation(ConnectionProxyHandler.java:139)
   at org.hibernate.engine.jdbc.internal.proxy.AbstractProxyHandler.invoke(AbstractProxyHandler.java:81)
   at com.sun.proxy.$Proxy15.prepareStatement(Unknown Source)
   at org.hibernate.engine.jdbc.internal.StatementPreparerImpl$5.doPrepare(StatementPreparerImpl.java:147)
   at org.hibernate.engine.jdbc.internal.StatementPreparerImpl$StatementPreparationTemplate.prepareStatement(StatementPreparerImpl.java:166)
   at org.hibernate.engine.jdbc.internal.StatementPreparerImpl.prepareQueryStatement(StatementPreparerImpl.java:145)
   at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1720)
   at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1697)
   at org.hibernate.loader.Loader.doQuery(Loader.java:832)
   at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:293)
   at org.hibernate.loader.Loader.doList(Loader.java:2382)
   at org.hibernate.loader.Loader.doList(Loader.java:2368)
   at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2198)
   at org.hibernate.loader.Loader.list(Loader.java:2193)
   at org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:122)
   at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1618)
   at org.hibernate.internal.CriteriaImpl.list(CriteriaImpl.java:374)
   at org.hibernate.internal.CriteriaImpl.uniqueResult(CriteriaImpl.java:396)
   at org.hibernate.search.query.hibernate.impl.ObjectLoaderHelper.executeLoad(ObjectLoaderHelper.java:103)
   at org.hibernate.search.query.hibernate.impl.ObjectLoaderHelper.load(ObjectLoaderHelper.java:49)
   at org.hibernate.search.query.hibernate.impl.LookupObjectsInitializer.initializeObjects(LookupObjectsInitializer.java:68)
   at org.hibernate.search.query.hibernate.impl.QueryLoader.executeLoad(QueryLoader.java:90)
   at org.hibernate.search.query.hibernate.impl.AbstractLoader.load(AbstractLoader.java:72)
   at org.hibernate.search.query.hibernate.impl.FullTextQueryImpl.list(FullTextQueryImpl.java:212)
   at hogm.hibernateogm_mongodb.FilterCities.jButton1MouseClicked(FilterCities.java:160)
   at hogm.hibernateogm_mongodb.FilterCities.access$000(FilterCities.java:40)
   at hogm.hibernateogm_mongodb.FilterCities$1.mouseClicked(FilterCities.java:71)
   at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:270)
   at java.awt.Component.processMouseEvent(Component.java:6508)
   at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
   at java.awt.Component.processEvent(Component.java:6270)
   at java.awt.Container.processEvent(Container.java:2229)
   at java.awt.Component.dispatchEventImpl(Component.java:4861)
   at java.awt.Container.dispatchEventImpl(Container.java:2287)
   at java.awt.Component.dispatchEvent(Component.java:4687)
   at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
   at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4501)
   at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
   at java.awt.Container.dispatchEventImpl(Container.java:2273)
   at java.awt.Window.dispatchEventImpl(Window.java:2719)
   at java.awt.Component.dispatchEvent(Component.java:4687)
   at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:729)
   at java.awt.EventQueue.access$200(EventQueue.java:103)
   at java.awt.EventQueue$3.run(EventQueue.java:688)
   at java.awt.EventQueue$3.run(EventQueue.java:686)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
   at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
   at java.awt.EventQueue$4.run(EventQueue.java:702)
   at java.awt.EventQueue$4.run(EventQueue.java:700)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
   at java.awt.EventQueue.dispatchEvent(EventQueue.java:699)
   at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
   at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
   at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
   at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
   at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
   at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)


But if I test my code with :
Code:
int res=fulltextquery.getResultSize();

It returns the correct answer, I have only one row with this number and it returns 1


Top
 Profile  
 
 Post subject: Re: Lucene search returns no result
PostPosted: Wed Sep 04, 2013 7:46 am 
Hibernate Team
Hibernate Team

Joined: Sat Jan 24, 2009 12:46 pm
Posts: 388
Hi Baro,

Adding the following should do the trick:

Code:
fulltextquery.initializeObjectsWith( ObjectLookupMethod.SKIP, DatabaseRetrievalMethod.FIND_BY_ID );


Hth,

--Gunnar

_________________
Visit my blog at http://musingsofaprogrammingaddict.blogspot.com/


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 4 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.