我剛剛開始使用Hibernate Search。我是用做搜索的代碼是從參考指南採取:休眠搜索初學者問題
FullTextEntityManager fullTextEntityManager =
Search.getFullTextEntityManager(em);
EntityTransaction transaction = em.getTransaction();
try
{
transaction.begin();
// create native Lucene query using the query DSL
// alternatively you can write the Lucene query using the
// Lucene query parser or the Lucene programmatic API.
// The Hibernate Search DSL is recommended though
SearchFactory sf = fullTextEntityManager.getSearchFactory();
QueryBuilder qb = sf
.buildQueryBuilder().forEntity(Item.class).get();
org.apache.lucene.search.Query query = qb
.keyword()
.onFields("title", "description")
.matching(queryString)
.createQuery();
// wrap Lucene query in a javax.persistence.Query
javax.persistence.Query persistenceQuery =
fullTextEntityManager.createFullTextQuery(query, Item.class);
// execute search
@SuppressWarnings("unchecked")
List<Item> result = persistenceQuery.getResultList();
transaction.commit();
return result;
}
catch (RuntimeException e)
{
transaction.rollback();
throw e;
}
我注意到查詢詞中析取(OR)解釋條款。我希望他們被解釋爲連詞。