2011-06-07 4 views
1

Toutes les solutions que j'ai vues jusqu'à présent impliquent la duplication de données en utilisant nosql ou datawarehousing. Y a-t-il des moyens plus efficaces?Recherche à facettes sans duplication de données (sans ETL)

2011-06-07 EDIT: Lorsque je ne dis pas de duplication, je ne veux pas non plus ETL. Je voudrais extraire des données directement de la base de données principale. C'est relationnel mais je suis à temps pour changer.

Répondre

1

Il existe un patch pour Solr qui ajoute l'affaissement de champ. Cela fonctionne assez bien, sauf que les problèmes sont signalés lorsque le jeu de résultats renvoyé contient des millions de documents.

De plus, il ne calcule pas les nombres de facettes avec une grande précision - parfois, le nombre total de toutes les facettes ne correspond pas au nombre de documents de l'ensemble. Cependant, la différence semble toujours ne pas être si grande - j'ai remarqué les fluctuations de moins de 100 pour l'ensemble des résultats de 10000-50000 documents.

Évidemment, pour utiliser ce correctif, vous devrez créer votre propre version de Solr. Si vous n'êtes pas à l'aise avec cela, vous pouvez essayer la version déjà construite que j'utilise. J'ai téléchargé à mon SkyDrive à la fois un fichier .war patch et mon dossier "lib" (pas sûr si le dernier est nécessaire et si le correctif apporte des modifications aux bibliothèques, mais juste au cas où ils aussi là). Aussi, je dois mentionner que cette version devrait être utilisée sur votre propre risque seulement - ils me servent sans aucune plainte sérieuse, mais je ne peux pas garantir la même chose pour les autres. Voici le download link.

Alternativement, vous pouvez attendre que Solr 4 soit libéré - il inclura l'effondrement de champ mais il a encore des problèmes critiques non résolus la dernière fois que j'ai vérifié. En passant, ses paramètres de recherche de réduction ne seront pas compatibles avec le correctif décrit ci-dessus, donc vous utilisez le premier et puis un autre, vous devrez également modifier votre code.

+0

Salut Yuriy. Dans ce cas, ETL est requis. Utilisez-vous Solr comme base de données principale? – Eduardo

+0

Dans mon cas, Solr index est basé sur une base de données MySQL et peut être reconstruit à partir de zéro si nécessaire à tout moment (bien que cela prenne plus d'une journée). Il ne contient aucune information unique absente de MySQL. – Yuriy

Questions connexes