Ignorar StopWords no hibernateSearch e Apache Lucene

1 resposta
murilob

Pessoal,
Estou com a seguinte dúvida relacionada a uma query lucene que estou fazendo para uma busca no hibernate search.

Criei um Analizer que retira do texto pesquisado acentos e palavras chaves que estão no BrazilianAnalyzer.

 O problema é que quando faço pesquisas entre aspas ele também retira as stop words. Isso não deveria acontecer pois quando pesquiso algo entre aspas quero que ele encontre o termo todo. Por exemplo:

Quando pesquiso: bola de vôlei (sem aspas) ele vai ignorar a palavra de (stop word) e procurar pelas palavras bola e vôlei.

Entretanto, quando pesquiso: “bola de vôlei” (com aspas) ele continua a ignorar a palavra de (stop word) e não encontra resultados. Ele deveria me retornar os resultados que contem o termo todo “bola de vôlei”

Existe alguma forma de fazer a query do lucene ignorar as stop word quando a busca for feita entre aspas?

1 Resposta

S

Estava com este mesmo problema,

Em alguns foruns do lucene essa solução

StandardAnalyzer standardAnalyzer  = new StandardAnalyzer();
if(!buscaTexto.contains("\"")){
	standardAnalyzer = new StandardAnalyzer(PesquisaMView.stopWords);
}
			
FullTextSession fullTextSession = Search.getFullTextSession(HibernateUtil.getSession());
MultiFieldQueryParser parser = new MultiFieldQueryParser(new String[] { "titulo", "resumo", "conteudoHtml" }, standardAnalyzer);

Ou seja, quando tiver aspas não uso o standardAnalyzer com stopwords.

Criado 2 de março de 2010
Ultima resposta 13 de set. de 2010
Respostas 1
Participantes 2