0
아래 코드는 제대로 작동하지만 두 클래스 (UserEnt 및 BookEnt)에서 40 클래스까지 지원해야합니다. 성능을 향상시키기 위해 사용자가 검색 할 클래스를 선택할 수 있도록 허용합니다. 즉, createFullTextQuery 메서드의 클래스는 선택에 따라 동적으로 선언되어야합니다. 이것이 가능한가? 그렇지 않으면 createFullTextQuery에서 40 개의 클래스를 선언해야한다.최대 절전 모드 검색 : 동적으로 검색 가능한 클래스 정의
// LUCENE SEARCH
String[] fields = {"firstName", "lastName", "name"};
QueryParser parser = new MultiFieldQueryParser(Version.LUCENE_34,
fields, new StandardAnalyzer(Version.LUCENE_34));
org.apache.lucene.search.Query luceneQuery = null;
try {
luceneQuery = parser.parse(s);
}
catch (ParseException e) {
throw new RuntimeException("Unable to parse query: " + s, e);
}
// HIBERNATE SEARCH WRAP
FullTextEntityManager ftEm = Search.getFullTextEntityManager(em);
javax.persistence.Query query = ftEm.createFullTextQuery(luceneQuery,
UserEnt.class, BookEnt.class);
List <?> results = query.getResultList();
System.out.println("Records found:"+results.size());