Document de recherche sur des mots partiels
Je suis à la recherche d'un document de moteur de recherche (comme Xapian, Whoosh, Lucene, Solr, Sphinx ou autres) qui est capable de rechercher partielle de termes.
Par exemple lors de la recherche pour le terme "brit" le moteur de recherche doit retourner les documents contenant "britney" ou "grande-bretagne" ou en général tout document contenant un mot correspondant r*brit*
Tangentiellement, j'ai remarqué que la plupart d'utilisation de moteurs de TF-IDF (Term frequency-Inverse document frequency) ou de ses dérivés, qui sont fondés sur l'ensemble des termes et non partielle termes. Existe-il d'autres techniques qui ont été mis en œuvre avec succès d'ailleurs TF-IDF pour la recherche de documents?
Merci pour la suggestion à l'abri. Ajout de plus de tags.
Une raison quelconque vous n'avez pas lu la documentation des différents moteurs. Lucene (et, par conséquent, Solr) prend en charge les caractères recherches: wiki.apache.org/lucene-java/...
OriginalL'auteur GeneralBecos | 2011-04-26
Vous devez vous connecter pour publier un commentaire.
Avec lucene vous seriez en mesure de mettre en œuvre ce de plusieurs façons:
1.) Vous pouvez utiliser des caractères génériques des requêtes
*brit*
(Vous pouvez définir votre analyseur de requête pour permettre menant wild cards)2.) Vous pouvez créer un champ supplémentaire contenant N-Grammes de tous les termes. Cela permettrait en plus d'indices, mais serait dans de nombreux cas, plus rapide (vitesse de recherche).
3.) Vous pouvez utiliser la recherche floue pour gérer les erreurs de frappe dans la requête. par exemple, une personne tapé
britnei
mais je voulais trouverbritney
.De joker et de requêtes de recherche floue ont un look à la la syntaxe de la requête docs.
Vous avez à dire à l'analyseur de requête pour permettre à ces types de requêtes. Utiliser la fonction setAllowLeadingWildcard de le faire. lucene.apache.org/core/4_0_0/queryparser/org/apache/lucene/...
OriginalL'auteur csupnig