Olah pessoal,
Estou precisando fazer um sistema, algo como um engenho de busca, para consultas avancadas em um banco contendo dados textuais. Alguem como usando JPA e Criteria do Hibernate. Contudo, estou encontrando o seguinte obstaculo: preciso implementar os operadores logicos E, OU, ADJ e PROX, especificados em http://www.stj.gov.br/SCON/jurisprudencia/SOS_simplificado.htm . Para facilitar o entendimento da questao, transcrevi a parte que interessa no texto do link anterior.
‘E’ localiza as palavras digitadas mesmo estando distantes entre si dentro de um julgado. Ex.: protesto E dano moral.
‘OU’ localiza um e/ou outro termo no julgado. Os termos procurados por esse critério devem vir sempre entre parênteses. Ex.: (desapropriaçao OU expropriaçao)
O ‘PROX’ é um conectivo que tem como função delimitar a distância entre as palavras digitadas recuperando-as em qualquer ordem em que aparecerem no julgado. Ex1.: protesto PROX4 dano moral Ex2.: Bagagem PROX2 extraviada.
O ‘ADJ’ é um conectivo que tem como função delimitar a distância entre as palavras observando na recuperação a ordem em que foram digitadas. Ex1.: extravio ADJ2 bagagem Ex2.: Mandado ADJ2 segurança
Os operadores E e OU consido implementar facilmente no Criteria, utilizando os comandos Expression.and e Expression.or. Esses jah estao funcionando corretamente. Contudo, nao tenho encontrado nada que possa me ajudar na automacao dos comandos PROX e ADJ. Alguem pode me dar uma luz?