2016-07-10 25 views
0

Die Ergebnisse können nicht abgerufen werden, während die Suche nach dem Ganzzahlfeld erfolgt und Daten noch vorhanden sind. Könnte jemand herausfinden, was ich falsch mache?Wie Integer-Wert mit Hibernate mit Lucene Search suchen?

int status = 0; 
FullTextEntityManager fullTextEntityManager = Search.getFullTextEntityManager(em); 
QueryBuilder qb = fullTextEntityManager.getSearchFactory().buildQueryBuilder().forEntity(ProcessActivity.class).get(); 
System.out.println(""+status); 
org.apache.lucene.search.Query luceneQuery = qb.keyword().onFields("status").matching(status).createQuery(); 

FullTextQuery fullTextQuery = fullTextEntityManager.createFullTextQuery(luceneQuery, ProcessActivity.class); 
fullTextQuery.setFirstResult(0).setMaxResults(recordMaxLength); 
return fullTextQuery.getResultList(); 

//Following is main Entity text 
@Fields({ @Field(index = Index.YES, analyze = Analyze.NO), @Field(name = "status", index = Index.YES, analyze = Analyze.NO) }) 
@Column(name = "STATUS") 
public int getStatus() { 
    return status; 
} 
+0

Könnten Sie den Namen der Zielobjektklasse gemeinsam nutzen, ist es 'ProcessActivity.class'? –

Antwort

0

Verwenden NumericRangeQuery wie

NumericRangeQuery.newIntRange("status", 1, value, value, true, true) 

oder String Phase wie

status[value TO value]