Servus,
ich versuche gerade Hibernate Search (3.4.2) zum Laufen zu bewegen, und scheitere...
Hibernate Search an sich funktioniert. Ich bin nach der offiziellen Doku vorgegangen, und folgendes gemacht:
Code:
public List<Eintrag> findByBegriffeIndexed(String begriffe, boolean pAktiv, int paginationStart) {
FullTextSession fullTextSession = Search.getFullTextSession(getMySession());
QueryBuilder queryBuilder = fullTextSession.getSearchFactory().buildQueryBuilder().forEntity(
Eintrag.class).get();
Query luceneQuery = queryBuilder.keyword().onFields("kurzbeschreibung", "allgemeinehinweise",
"name").matching(begriffe).createQuery();
FullTextSession hibernateFullTextSession = Search.getFullTextSession(getMySession());
org.hibernate.Query fullTextQuery = hibernateFullTextSession
.createFullTextQuery(luceneQuery, Eintrag.class);
fullTextQuery.setFirstResult(paginationStart);
fullTextQuery.setMaxResults(20);
List<Stiftung> result = fullTextQuery.list();
return result;
}
es wird ein fullTextQuery instanziiert, aber das Ergebnis ist leer.
Ich suche nach einem Begriff, der auf jeden Fall vorkommt (im Namen oder in der Kurzbeschreibung)
Die Felder sind in der Entität annotiert:
Code:
@Field(index = Index.TOKENIZED, store = Store.NO, name = "kurzbeschreibung", analyzer =
@Analyzer(definition = "myAnalyzer"))
über der Entität habe ich folgendes annotiert:
Code:
@Indexed(index = "eintrag_index")
@AnalyzerDefs({
@AnalyzerDef(name = "myAnalyzer",
tokenizer =
@TokenizerDef(factory = StandardTokenizerFactory.class),
filters = {
@TokenFilterDef(factory = LowerCaseFilterFactory.class),
@TokenFilterDef(factory = GermanStemFilterFactory.class),
@TokenFilterDef(factory = NGramFilterFactory.class,
params = {
@Parameter(name = "minGramSize", value = "3"),
@Parameter(name = "maxGramSize", value = "3")})
})
})
die Ergebnisliste ist leider immer leer...
Was muss ich tun?
edit
meine entity Eintrag erbt von BasisEntity eine ID.
kann das ein Problem sein?