2010-01-18 5 views
0

J'ai un site de petites annonces, avec environ 30 catégories de petites annonces.Quelle méthode devrais-je utiliser? Indexer MySQL db avec SOLR

Je suis sur la scène où je dois construire des tables MySQL et les indexer avec SOLR. Chaque rangée d'une table a environ 15 champs ...

Je suis à la recherche de performance!

Je me demande laquelle de ces deux méthodes qui fonctionne le mieux:

1- Avoir une table de MySQL pour chaque catégorie, signifie 30 tables, puis avoir plusieurs index dans SOLR (Cela signifie que si le l'utilisateur ne souhaite effectuer une recherche que dans une catégorie spécifique, puis recherche dans la table/index, ce qui permet d'améliorer les performances (je pense), mais si l'utilisateur recherche TOUTES les catégories à la fois, toutes les tables/index devront être recherchés.)

2- Avoir une et une seule table MySQL, et un seul index dans SOLR.

Merci

Répondre

0

En supposant que tous les différents types d'annonces ont la même structure, je voudrais faire ce qui suit:

Stocker le texte dans une seule table, avec un autre champ pour la catégorie (et d'autres champs pour toute autre information est associée à une catégorie).

Dans Solr, créez un index qui comporte un champ de texte, un champ de catégorie et un champ PK. Les champs de texte et de catégorie seraient indexés mais non stockés, et le champ PK (stockant la clé primaire correspondant à votre table MySQL) serait stocké mais non indexé. Permettre à l'utilisateur de faire deux types de recherches: une avec juste du texte, et une avec du texte et de la catégorie. Pour ce dernier, la catégorie devrait correspondre exactement. La recherche Solr renverra une liste de PK qui vous permettra de récupérer des documents de MySQL.

Vous ne verrez pas beaucoup d'amélioration des performances en divisant votre index en 30 indices, car Solr/Lucene est déjà très efficace pour trouver des données via ses index inversés. La spécification du nom de la catégorie est suffisante.

+0

danben, je suis encore coincé malheureusement ... J'essaie de comprendre comment je devrais ajouter le fichier csv à SOLR, et où je spécifie les champs à indexer/stocker ... Dois-je faire cela avec PHP (vous connaissez mon histoire de fond de site Web), ou avec un terminal. Connais-tu ceci? Désolé si je demande trop, mais je suis complètement nouveau à cela! Merci –

+0

Avez-vous lu le lien vers CSVHandler que j'ai posté à votre question précédente? Cela explique comment ajouter un fichier CSV à Solr. Vous devez effectuer un appel HTTP (par exemple, en utilisant curl). Il existe différents paramètres de requête pris en charge par le gestionnaire CSV, tous détaillés dans la documentation. – danben

+0

ok, oui j'ai lu cette section sur CSV et la mise à jour. Merci encore, je vais regarder dans ce plus demain après une nouvelle tasse de café :) –

Questions connexes