【发布时间】:2014-05-25 02:09:27
【问题描述】:
我已将 hibernate search 3.1.1 与我现有的 Spring 2.5 应用程序和 Hibernate core 3.3.2 GA 集成。使用 hibernate-search-3.1.1,我使用的是 apache lucene 2.4.1。
我面临的问题是,当我按顺序搜索单个单词或多个单词时,它会完美搜索并返回结果,但是当我用空格无序搜索多个单词时,它不会返回任何结果。例如,如果我有一个索引为
的文本“你好伟大的世界!”
现在如果我搜索“Hello”或“great world”,它会成功返回结果,但如果我搜索“world Hello”,它不会返回任何结果。
如果任何完整或部分单词与索引文本匹配,我想要的是能够返回结果。我的源代码如下:
FullTextEntityManager fullTextEntityManager = Search.getFullTextEntityManager(this.entityManager);
// create native Lucene query
String[] fields = new String[] { "text", "description", "standard.title", "standard.briefPurpose", "standard.name" };
MultiFieldQueryParser parser = new MultiFieldQueryParser(fields, new StandardAnalyzer());
org.apache.lucene.search.Query query = null;
try {
query = parser.parse(searchTerm);
} catch (ParseException e) {
e.printStackTrace();
}
// wrap Lucene query in a javax.persistence.Query
FullTextQuery persistenceQuery = fullTextEntityManager.createFullTextQuery(query, Requirement.class);
// execute search
@SuppressWarnings("unchecked")
List<Requirement> result = persistenceQuery.getResultList();
return result;
如果我需要添加任何东西来支持我想要的东西,请帮忙。
【问题讨论】:
标签: java hibernate search lucene hibernate-search