QuerySintax do Lucene

2 respostas
R

Boa tarde.

Gostaria de saber se alguém já se deparou com problemas lógicos na sintaxe do Lucene (engine para busca textual). Meu caso é o seguinte:

Fiz as seguintes pesquisas:

pesquisa1: livro >> retornou 87 documentos
pesquisa2: constitucional >> retornou 97 documentos
pesquisa3: livro NOT constitucional >> retornou 75 documentos
pesquisa4: constitucional NOT livro >> retornou 64 documentos
pesquisa5: livro AND constitucional >> retornou 97 documentos (deveria ser 12)
pesquisa6: livro OR constitucional >> retornou 100 documentos
pesquisa7: (livro OR constitucional) NOT (livro AND constitucional) >> retornou 80 documentos

Vocês conseguem ver as inconsistências? Por exemplo: se tenho 87 documentos com o termo “livro”, e pesquiso “livro NOT constitucional” (documentos com “livro” mas sem “constitucional”) e recebo 75 documentos, “livro AND constitucional” deveria retornar 12 documentos, e não 97. Além disso, “livro OR constitucional” retorna 100 = “livro” + “constitucional” - “livro AND constitucional” = 87 + 97 - 97 = 87 (teoria dos conjuntos), logo 100 = 87 (Falso!!!).

Fiz os testes usando os operadores + (obrigação) e - (proibição) também, mas não funcionou.

Alguém aqui já teve problema com isso? Será que o processador da sintaxe do Lucene está com bug?

2 Respostas

R

E aí pessoa? Alguém já teve algum problema parecido, ou eu que fiz algo de errado no processo?

R

Parece que o TopDocCollector, usado para fazer um tipo de top N com os documentos indexados, estava influenciando no resultado, fazendo parecer que havia erro de lógica. Mas ainda não tenho uma solução. Sabendo melhor do problema, posto aqui para todos.

Criado 16 de janeiro de 2009
Ultima resposta 22 de jan. de 2009
Respostas 2
Participantes 1