Pesquisa por palavra chave - Hibernate

Bom dia pessoal,

Estou em busca de uma solução para o seguinte problema:
Tenho um campo no banco que armazena várias palavras chave, ex.: "redes wiriless cabeado"
quero selecionar todos os registros que possuam wiriless, mas que não selecione por exemplo wwwirilesss

Estou usando Hibernate, já tentei com like e retornará qualquer ocorrencia da substring wiriless

não quero fazer uma seleção desnecessária, que dependendo da quantidade de registros comprometerá a peformance da aplicação.

sugestões ?

Pesquisas por palavras-chave NUNCA devem ser feitas com LIKE se a tabela for muito grande - normalmente você acaba efetuando um “table scan” na tabela inteira, e dependendo da tabela isso pode ser muito custoso (e em alguns bancos, enquanto você efetua um table scan, a tabela fica “travada” para atualizações).

Elas devem sempre ser feitas de acordo com o recurso que o seu banco de dados tem, diretamente com JDBC.

Procure na documentação de seu banco pelas palavras-chave: “Full-Text Search” ou “FTS”.

Exemplos:
MySQL - http://dev.mysql.com/doc/refman/5.0/en/fulltext-search.html
PostgreSQL - http://www.sai.msu.su/~megera/postgres/gist/tsearch/V2/
MS SQL Server - http://msdn2.microsoft.com/en-us/library/ms142571.aspx
Oracle - http://www.oracle.com/technology/pub/articles/asplund-textsearch.html
DB2 - http://www-306.ibm.com/software/data/db2/extenders/netsearch/

“Talvez” o HibernateSearch ou Lucene resolvam teu problema.
:slight_smile:

blz, o hibernate search já conheco e ja estou trabalhando na integração dele com o framework de desenvovimento que trabalho, porém preciso de uma solução de imediato para este problema.

Contrate uma consultoria.

[size=7][ Vou me controlar… contando até 10… ][/size]

Sua resposta foi a melhor possível, Hibernate Search. :wink:
vou arranjar uma solução temporária e depois utilizarei o hibernate search
valeu pela resposta.
t+++