2009-11-13 6 views
1

Je me demande simplement s'il existe des conseils pour améliorer les temps de recherche (texte intégral).amélioration des temps de recherche

Comment les grands sites comme stackoverflow, reddit, etc, implémentent leurs fonctions de recherche?

(Désolé pour le flou - je suis un débutant)

+0

Nous allons avoir besoin d'un peu moins vague pour donner quelques indications. Quel framework/langage/backend utilisez-vous? Avez-vous essayé des approches que nous pouvons exclure (et pourquoi)? – jheddings

+0

Je suppose que ce n'est pas pertinent. Suggérer un. –

+0

Il ne s'agit pas de la structure ou du langage - les algorithmes doivent être indépendants du langage ou de l'environnement. Bien sûr, ils peuvent être réglés pour le système une fois fait, mais toutes les approches peuvent certainement encore être évaluées et considérées dans la forme générale, pour le moment. –

Répondre

0

Oh wow, il y a des cours complets et des documents écrits sur ce ...

Tout d'abord, si vous stockez dans une base de données, il y a des indices et des jointures différentes et des vues et toutes sortes de plaisir pour accélérer vos requêtes.

Cependant, vous avez spécifié la recherche en texte intégral, donc je vais vous diriger vers this page qui a une comparaison des techniques les plus courantes. Maintenant, c'est pour les tableaux, mais vous comprendrez comment la division ou la recherche peut être améliorée ou modifiée.

Ensuite, lisez this Wikipedia article lors d'une recherche de chaîne. Il y a la recherche naïve où vous regardez juste, ou ceux où vous créez un index en premier, de sorte que les recherches futures vous permettent de sauter - comme des chapitres ou des numéros de page dans un livre de texte. Les techniques de stockage d'index ou de modèle sont également très utiles en compression, et c'est encore une autre façon d'accélérer la recherche - si vous construisez la chaîne compressée, vous pouvez être intelligent et passer à la section compressée, extraire et comparer, selon que vous avez un nombre limité de modèles que vous recherchez, ou si vous avez quelque chose-va.

Ensuite, il y a aussi la recherche floue, où vous n'obtenez pas une correspondance exacte - vous pouvez le faire sur un score de «proximité» - comme un pourcentage de correspondances de caractères.

Espérons que cela vous donne un bon point de départ au moins!

0

Apache Lucene est le moteur d'indexation de texte intégral open source canonique. Je commencerais là si j'avais besoin de construire une fonction de recherche pour un site web.

Questions connexes