나는 Spring 2.5와 Hibernate core 3.3.2 GA로 기존 응용 프로그램과 함께 최대 절전 모드 검색 3.1.1을 통합했습니다. hibernate-search-3.1.1에서, lucene 2.4.1을 사용하고 있습니다.Hibernate Search 3.1.1 - 임의의 순서로 필드의 같은 문구에서 여러 단어를 검색하는 방법
내가 직면하는 문제는 한 단어 또는 여러 단어를 순서대로 검색 할 때 완벽하게 검색하여 결과를 반환하지만 여러 단어를 빈 칸으로 순서없이 검색하면 결과가 반환되지 않습니다. 예를 들어
으로 색인이 생성 된 텍스트가있는 경우"Hello great world!"
Now "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;
내가 원하는 것을 지원하려면 무엇이든지 추가해야합니다.