public List<Person> SearchUsPerson(String filter) throws org.apache.lucene.queryParser.ParseException{
EntityManager em = null ;
MultiFieldQueryParser parser;
org.apache.lucene.search.Query query = null;
FullTextEntityManager fullTextEntityManager;
javax.persistence.Query persistenceQuery;
//Définition des champs de recherche
String[] fields = new String[]{"name","fisrtname"};
parser = new MultiFieldQueryParser(fields, new StandardAnalyzer());
try {
query = parser.parse(filter);
} catch (ParseException ex) {
throw new RuntimeException("Cannot search with query string",ex);
}
//création du fullTextEntityManager
fullTextEntityManager = Search.getFullTextEntityManager(em);
persistenceQuery = fullTextEntityManager.createFullTextQuery(query,Person.class).setCriteriaQuery(null);
//récupération des résultats
return persistenceQuery.getResultList();
}
Partager