Busca estilo GOOGLE

7 respostas
V

Olá, preciso de uma ajuda no leitor de RSS que estou fazendo.
Preciso fazer uma pesquisa no estilo Google, onde vou inserir operadores lógicos entre as palavras, por exemplo:
Procuro nos feeds cadastrados as palavras ABACAXI ou a palavra BANANA. A idéia é retornar o feed onde tiver a palavra ABACAXI ou BANANA independe de estarem no mesmo tempo ou não.
Se quiser as duas palavras, ABACAXI e BANANA então tem que por obrigação estar as duas palavras dentro do texto.
EXEMPLO DE COMO DEVE SER PESQUISADO:

ABACAXI OR BANANA ; ABACAXI AND BANANA

Obrigado pela atenção de todos e espero que possam me ajudar.

7 Respostas

ateubh

Você está com alguma dúvida ou quer que façamos para você?

V

Se puderem fazer para mim eu agradeço, porque eu não tenho nem idéia de como vou começar.
Obrigado pela atenção

orlandocn

veja se te ajuda
http://lucene.apache.org/

P

se vc usa o banco oracle, uma solução eh indexar usando um indice de contexto. Esse indice permite operadores logicos na condição de busca.

V

Então, é que estou fazendo a busca dentro de uma variável do tipo string mesmo, sem banco de dados

T

victorhugozm:
Olá, preciso de uma ajuda no leitor de RSS que estou fazendo.

Como é um leitor de RSS, usar o Lucene é muito pesado. Mais fácil você criar uma tela com as condições, mais ou menos assim:

Procurar palavra: [               ]
[E  |v]
[OU | ]
         palavra: [               ]
[E  |v]
[OU | ]
         palavra: [               ]
[E  |v]
[OU | ]
         palavra: [               ]
...
excluindo: [               ]
[E  |v]
[OU | ]
         palavra: [               ]
[E  |v]
[OU | ]
         palavra: [               ]
[E  |v]
[OU | ]
         palavra: [               ]
...
nos tópicos de:   [dd/mm/aaaa][#]
             a:   [dd/mm/aaaa][#]

onde [E/OU] representa um combo (ou radio button, o que você achar melhor) que liste as operações lógicas, e [#] é um botão para você mostrar um campo de entrada de calendário.

Um exemplo mais sofisticado é a tela de busca avançada do Google ( http://www.google.com.br/advanced_search?hl=pt-BR ). Você pode fazer algo bem, bem mais simples.

Uma coisa que aprendi é que dificilmente as pessoas sabem usar AND e OR para consultas; isso vai além do mapa mental delas.

A única exceção é quando você quer que procure AND: basta juntar as palavras, por exemplo “busca estilo” deve achar todos os tópicos que contém as palavras BUSCA e ESTILO. Não force o usuário a usar AND (ou + como nos tempos do Altavista). Isso não é nem um pouco intuitivo.

Se você quer que o usuário use consultas complexas, não use um método complexo (queries com AND e OR).
Apesar do formulário ser bem mais chato de preencher, ele é mais explicativo.

V

O problema que o meu professor só vai aceitar daquele jeito que falei para vocês, segundo ele o grau de dificuldade faz parte

Criado 22 de abril de 2009
Ultima resposta 24 de abr. de 2009
Respostas 7
Participantes 5