Olá pessoal, gostaria de saber se alguem ja utilizou o hibernate search e conseguir passar para a consulta multiplos parametros de busca.
Fazer a consulta passando apenas um termo esta tranquilo, o que queria era buscar em mais de um campo para limitar os resultados, hj devolvo a lista e por exemplo para retirar os arquivos marcados como deletados preciso percorrer a lista e remover na mão cada um destes itens, isto esta gerando um processamento que a meu ver é desnecessario, pois creio que seja possivel buscar passando mais de um termo e valor para a busca do hibernate search.
ex. da busca que realizo hj:
[code]private FullTextQuery montarQuery(String termo) throws ParseException {
// define o peso de cada campo indexado
Map<String, Float> pesoPorCampo = new HashMap<String, Float>();
pesoPorCampo.put(“descricao”, 4f);
pesoPorCampo.put(“tipoDocumento.descricao”, 1f);
pesoPorCampo.put(“tags.descricao”, 2f);
pesoPorCampo.put(“atributos.valor”, 2f);
pesoPorCampo.put(“atributos.valorSemMascara”, 2f);
// define os campos de pesquisa
String[] campos = { "descricao", "tipoDocumento.descricao", "tags.descricao", "atributos.valor", "atributos.valorSemMascara" };
QueryParser parser = new MultiFieldQueryParser(campos, new SimpleAnalyzer(), pesoPorCampo);
parser.setAllowLeadingWildcard(true);
org.apache.lucene.search.Query luceneQuery;
// TODO parametrizar grau de similaridade na busca de documentos
luceneQuery = parser.parse(termo + "~0.7");
return ((FullTextEntityManager) em).createFullTextQuery(luceneQuery, Documento.class);
}[/code]
Como podem ver na consulta ele busca em todos os campos (String[] campos) o valor do termo que foi passado como parametro, e o que desejo é poder passar mais de um termo, com citei por exemplo o status do documento.
Alguém poderia me dar um help quanto a isto?
Grato por toda a ajuda.
[]'s