Como criar busca com multiplos parametros usando hibernate search?

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

Cara, vc já tentou usar criteria? Por exemplo:

public Collection<SuaClasseEntidade> consulta(String termo, String statusDocumento) {  
   SessionFactory sessionFactory;  
   Session sessao = sessionFactory.openSession();  
   Criteria crit = sessao.createCriteria(SuaClasseEntidade.class);  
   crit.add(Restrictions.eq("atributoTermo", termo));  
   crit.add(Restrictions.eq("atributoStatusDocumento", statusDocumento));  
  
   return crit.list();  
}

A lista de retorno já estaria filtrada com os dois parâmetros.

Abs!

Olá leo bom dia, obrigado pela resposta, então cara, quanto a sua sugestão ñ seria possivel usar criteria pois minha busca é atraves de indices criados pelo hibernate search, não é uma simples consulta ao bd, vi na documentação do hibernate search q é possivel setar uma criteria a minha FullTextQuery, mas não obtive sucesso, apesar de não dar nenhum erro na execução ele não executa a ação da criteria.

Mesmo assim obrigado pela resposta.

[]'s

Tem uma discussao boa aqui:
https://forum.hibernate.org/viewtopic.php?p=2381832