2010-07-29 5 views
0

Je développe un composant qui stocke les URL et maintient un certain ensemble de mots-clés associés à ces URL. Pour exemple-Stocker des URL avec des mots-clés - quelle est la meilleure approche?

URL: http://www.imdb.com Mots-clés: recherche, films, film-index, revue

Les mots-clés eux-mêmes ne sont pas limités par le nombre. Le nombre d'urls peut être énorme en nombre compris entre 10K à 100K. Quelle est la meilleure approche pour associer et stocker les URL avec leurs mots-clés? Cela devrait soutenir la recherche par mots-clés et listes basées sur des combinaisons de mots-clés. Je ne pense pas que ce soit une bonne approche pour utiliser la base de données relationnelle pour cela. Peut-être que ma question résume à "comment fonctionne un moteur de recherche". Mais je cherche des informations plus spécifiques comme: Existe-t-il des outils disponibles pour stocker les mots-clés et les indexer? J'ai entendu parler d'Apache Lucene, qui ressemble plus à un moteur de recherche en texte intégral.

Qu'est-ce que stackoverflow utilise en interne pour associer les mots-clés aux articles?

+0

Vous devriez regarder Apache Solr (construit sur Lucene) pour vos besoins. Il fait exactement ce dont vous avez besoin. – Mikos

Répondre

1

Vous devriez vraiment utiliser une conception de base de données entièrement normalisée. Un tableau de URLS, chacun avec un URLID unique. Une table de KEYWORDS, chacun avec un KEYWORDID unique, et enfin une table pour décrire la relation qu'ils partagent, TABLE_URL_KEYWORDS, avec les colonnes KEYWORDID et URLID qui relie les deux ensemble dans un URL à de nombreuses relations KEYWORDS.

Vous n'avez pas besoin de vous soucier des performances, les systèmes de base de données performants sont exceptionnellement rapides pour ce type d'opérations, ils ont été conçus spécifiquement pour un format normalisé. 100k URLS avec 100k KEYWORDS, et les enregistrements de relation 400K est parfaitement gérable pour tous les systèmes de base de données populaires là-bas.

Si vous suivez une route différente, IE non-normée, cela va devenir un gros gâchis et vous coûtera beaucoup de temps pour trier, ou quelqu'un d'autre à trier, plus tard dans la ligne. Je mettrais beaucoup d'argent sur le fait que StackOverflow stocke ses données dans un format fondamentalement identique à celui décrit.

+0

Eh bien dit ... même si l'affiche va avoir des problèmes re: Google, maintenant que httpS://www.google.com est en vie. – NinjaCat

+0

Pour l'OP, je pense qu'il peut enlever le protocole de l'URL car il ne change probablement pas la description du site. Cependant, s'il décide que c'est important, alors vous pouvez traiter chaque protocole comme une entrée d'URL séparée (la plus simple et la meilleure probablement), ou vous pouvez normaliser complètement, dont il y a plusieurs façons de le faire, qui commencent à devenir un peu plus complexe. –

Questions connexes