Si je voulais créer un moteur de recherche, comment pourrais-je commencer? [fermé]

Fermé . Cette question doit être plus ciblée . Il naccepte pas les réponses actuellement.

Commentaires

  • Si vous navez ' aucune expérience de lécriture de code, que diriez-vous dapprendre à coder en premier? Construire un moteur de recherche est un peu exagéré pour quelquun de nouveau dans la programmation.
  • Comme le dit Terence, ce nest pas quelque chose pour ceux qui découvrent la programmation. Tout moteur de recherche qui est bon du tout a tendance à être un travail assez compliqué, il y a une raison pour laquelle Google est si massif, ils font assez bien une tâche très difficile. Même les programmeurs chevronnés ont tendance à préférer utiliser quelque chose de pré-construit. Si vous donnez une idée de ce à quoi vous le souhaitez, nous pouvons peut-être vous orienter dans la bonne direction.
  • Commencez par un projet plus petit. Construire un moteur de recherche implique une quantité massive de code. Et comment rassembler toutes les données de votre moteur de recherche? Vous ' aurez besoin de beaucoup plus de code et d’une infrastructure massive. Vraiment, commencez par des projets plus petits et travaillez, sinon vous serez tout simplement frustré.
  • Ce livre ma aidé à comprendre ce que sont les moteurs de recherche et comment ils sont construits: nlp.stanford.edu/IR-book

Answer

Jai écrit ceci pour un blog javais lhabitude davoir le chemin du retour quand …. il nest plus sur le web donc .. le voici! :

Comment écrire un moteur de recherche

Darren Rowse sur probolgger.net tient un projet décriture de groupe sur tout « Comment faire ». Cest lun des rares blogs que je lis régulièrement, alors je me demande pourquoi ne pas écrire quelque chose qui vaut la peine dêtre lu pour changer, plutôt que mon discours violent standard où je « finirai par menacer de poignarder Hugo Chaves à la gorge.

Jai décidé décrire « Comment écrire un moteur de recherche ». Jai choisi ce sujet pour deux raisons:

  1. Il ny a pas beaucoup de bonnes informations à ce sujet sur le Web.
  2. Jen écris actuellement un pour lun de mes clients.

Mon client est un détaillant en ligne de taille importante, donc je ne cherche pas sur tout le Web uniquement sur leur site, plus précisément sur le site produits en vente sur leur site. Néanmoins, les mêmes techniques peuvent être utilisées pour écrire une technique plus complexe utilisée pour la recherche sur Internet. Je sais que ce nest pas un blog technique, donc je nentrerai pas trop dans les détails techniques, et je ne discuterai pas non plus des exigences en matière de matériel, de puissance de traitement ou de lexploration Web.

Jutilise une technique assez simple , Jai une table (tblKeywords) avec trois champs:

  1. Itemid (si vous faites une recherche sur le Web, ce serait URL)
  2. KeyWord (mot-clé indexé)
  3. Pondération (il sagit dune valeur numérique comprise entre 1 et 100, plus ce nombre est élevé, plus le mot clé est significatif (poids)) * PK = ItemID + KeyWord

La première chose que je fais est de collecter des mots individuels de nimporte quel endroit qui est pertinent. Pour mon client, je vais tirer les mots du tableau des produits. Spécifiquement à partir des champs Itemid, ItemName, ItemShortDescription, ItemLongDescription, Manufacturer, ManufacturerSKU, Category1, Category2, Category3 ect. Si vous indexez des pages Web, vous pouvez extraire des données du texte de la page, du titre de la page, de lURL ou des liens sur dautres pages qui renvoient à la page en cours dindexation.

La valeur de pondération est déterminée par lorigine du mot-clé . Par exemple, dans mon cas, le SKU de larticle « Fabrication » aurait un poids de 100, tandis quun mot du nom de larticle peut avoir un poids de 25. Un mot de ItemLongDescription peut avoir un poids de 5. Si vous indexez pages Web, les mots du titre de la page peuvent avoir un poids de 75, tandis quun mot en gras du texte de la page peut avoir un poids de 10. Si un mot est répété plus dune fois ou \ et à plus dun endroit, vous additionnerez le poids pour chaque fois quil se produit. Par exemple Si le mot « Shirt » vient de deux endroits pour ItemId = 12345, The ItemName (poids de 25) et apparaît deux fois dans ItemLongDescription (Weight of 5 x2 = 10), le mot « shirt » aurait un poids total de 35 pour ItemId = 12345.

Si quelquun fait une recherche sur « chemise rose », je recherche dans ma table toutes les occurrences des mots « rose » ou « chemise » et totalise les poids. Affichage des éléments avec le poids total le plus élevé en haut.

SQL:

Select Itemid, sum(weight) as totWeight from tblKeywords group by itemId having keyword in ("pink","shirt") 

Donc, vous lavez ici, un élément de base (et rapide) moteur de recherche. Bien sûr, il y a plus à faire, comme supprimer la ponctuation, le code HTML et les mots clés sans valeur tels que « et », « si », « ou ». Cela ne concerne pas la recherche de phrases clés, mais vous pouvez utiliser un système similaire pour les phrases si vous savez où elles commencent et se terminent.

Commentaires

  • merci belle réponse. que suggéreriez-vous également pour regrouper les produits. Je veux dire que vous avez environ 1 million de pages de produits explorées à partir de différents sites Web. vous souhaitez regrouper les mêmes produits sur différents sites Web: programmers.stackexchange.com/questions/134292/…
  • @Monster – Que diriez-vous de l’article ' s Combinaison fabricant / SKU?
  • Vous pouvez également acheter (louer) ces données auprès d’entreprises telles que Etilize
  • pouvez-vous lexpliquer un peu plus parce que je ne lai pas compris. Merci.
  • Une " ok " réponse pratique. Cependant, cela ne tient pas compte de lensemble du domaine détude aka " Recherche dinformations ". En termes de " pointer dans la bonne direction " IR aurait été mieux dans mon esprit.

Réponse

Le brouillon distribué gratuitement de Introduction à la recherche dinformations va être votre principal matériau de référence. Il gère la recherche (récupération dinformations) du niveau basique au niveau avancé.

Réponse

Les moteurs de recherche sont basés sur robots dexploration , vous aurez besoin de comprendre comment créer lun de ces ventouses avant de pouvoir développer un site Web pour afficher ses résultats (vous aurez besoin dune base de données rapide et efficace pour aller avec).

Commentaires

  • Un moteur de recherche peut consommer la sortie dun robot dexploration Web, mais sinon ils ont très peu à voir avec chacun autre. De plus, il est peu probable quune base de données rapide et efficace de type SQL aide beaucoup dans cette entreprise. Les moteurs de recherche sont généralement construits à laide de schémas dindexation de fichiers inversés, qui ' ne correspondent pas du tout au moule SQL.
  • @Marcelo Cantos: Lindexation de fichiers inversés semble compliquée: -0 – Merci de mavoir aidé à clarifier ma réponse!

Réponse

Création dun moteur de recherche

Ceci est un cours dintroduction au CS qui va commencer le 20, je vous suggère de le vérifier, il est offert gratuitement .

Commentaires

  • Sebastian Thrun est également étroitement associé à Google.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *