0

Je suis intéressé par les suggestions pour la construction d'une structure efficace et robuste pour les produits d'indexation dans une nouvelle base de données que je construis (j'utilise MySql)stratégie pour structurer un index de recherche dans une base de données relationnelle

Lorsqu'un produit est entré par le formulaire il y a trois parties je suis intéressé par l'indexation à des fins de recherche.

  1. Le titre du produit
  2. La description du produit
  3. Mots

Le plus important est le titre, suivi par les balises, suivi par la description.

Je pensais à l'aide de la structure suivante

CREATE TABLE `searchindex` (
`id` INT NOT NULL , 
`word` VARCHAR(255) NOT NULL , 
`weighting` INT NOT NULL , 
`product_id` INT NOT NULL , 
PRIMARY KEY ( `id`) 
) 

Ensuite, chaque fois qu'un produit est créé, je fendit le titre, la description et les balises (suppression de mots communs) et leur attribuer une pondération.

Ensuite, il est trivial de sélectionner les mots et les produits correspondants et de les classer par pondération.

Y a-t-il une meilleure façon de procéder? Je craindrais que cette stratégie ne ralentisse au fil du temps et que la base de données ne soit remplie.

Répondre

1

Pour le titre, vous pouvez simplement indexer les deux premiers caractères pour obtenir un sous-ensemble plus petit lors de la correspondance, mais pour la description, vous devriez vraiment considérer un index fulltext. Cela peut automatiquement peser et trouver les meilleurs matchs