2010-12-14 97 views
4

Je travaille sur un site web qui a peu de trafic en ce moment. Il est construit en utilisant Ruby on Rails et fonctionne sur la plate-forme de nuage de Heroku.Quels sont les bons fournisseurs de recherche en nuage ou de tiers?

En tant que partie du site, j'ai un grand nombre de pages qui doivent être consultables, chacun d'eux ne contient qu'une infime quantité d'informations. Pensez à un tableau d'articles où chaque article n'a besoin que de son titre indexé, mais il y a environ 8 millions d'articles.

Postgres Recherche: Quand j'ai commencé à travailler sur ce sujet, j'ai couru Postgres recherche en texte intégral, mais apparemment il n'est pas optimisé assez pour la recherche pour gérer ce nombre d'éléments indexés, et a couru chien lent. J'ai effectué des recherches qui dépassaient la connexion à la base de données et duraient plus de 30 secondes.

Websolr: Je puis déplacé sur ce qui était alors le seul et unique Heroku add-on pour la recherche de nuages, Websolr par OneMoreCloud. Malheureusement, ils chargent par le nombre d'articles indexés, ce qui est horrible pour un site comme le mien qui n'a pas de trafic mais un grand nombre d'articles à indexer, et j'ai eu une performance qui était sans doute pire que la recherche Postgres, qui était gratuite. Lorsque la recherche de Postgres expirerait et que le site serait supprimé, Websolr renverrait un ensemble de résultats vide ou partiel, ce qui inciterait les utilisateurs à penser que le résultat ne se trouvait pas dans la base de données.

Tank Index: maintenant Heroku a ajouté un autre fournisseur de recherche nuage, Tank Index, qui est en version bêta encore. Bien que la version bêta soit gratuite, je suis réticent à les essayer car pour leur service non-Heroku, qui n'est pas gratuit, leur plan le plus haut n'a que 2 millions de documents alors qu'il coûte déjà 500 $ par mois.

Google Site Search: Une option que j'examine actuellement consiste à passer à Google Site Search. La marque de recherche Google me donne confiance que je ne vais pas rencontrer les problèmes de performance que j'ai eu dans le passé. En outre, leur prix est extrêmement raisonnable, et est évalué par le trafic. Cependant, ce n'est pas vraiment une recherche intégrée, car elle ne se connecte pas à la base de données mais ne regarde que les pages Web, donc il n'y a pas moyen de spécifier une recherche où elle ne renvoie que des articles. dans la catégorie Articles techniques ou quelque chose comme ça. Même pour personnaliser l'apparence des résultats de recherche, cela me semble un peu pénible, en ce sens que je devrais analyser les résultats de la recherche en XML, puis l'utiliser pour générer ma page de résultats de recherche, et si je voulais personnaliser avec les métadonnées dans l'affichage, je devrais utiliser les résultats de recherche analysés pour rechercher toutes les lignes de résultats dans ma base de données.

Existe-t-il de bonnes options pour les fournisseurs de recherche cloud ou tiers que vous recommanderiez à la communauté Stackoverflow?

+0

pourquoi utilisez-vous pas votre propre index, par exemple Lucene? Vous pouvez indexer exactement ce que vous voulez, et sur le terrain (par exemple, le titre, le contenu) et il est facile à configurer. Il y a plusieurs ports et/ou interfaces Ruby, voir cette question: http://stackoverflow.com/questions/1318604/ruby-alternative-for-lucene –

+0

@Richard Si le pire venait au pire, je le ferais, mais je le ferais aime vraiment l'éviter.Exécuter mon propre index sur Lucene impliquerait la mise en place d'un serveur, alors qu'en ce moment je n'en ai aucun dont j'ai besoin pour me gérer moi-même. De plus, en exécutant Solr/Lucene sur mon système local pour tester Websolr, cela m'a donné une tonne de problèmes de configuration que je voudrais éviter, comme des erreurs de mémoire même si j'avais beaucoup de mémoire. –

+1

@Richard: Lucene peut être facile à démarrer, mais c'est beaucoup de travail pour l'optimiser. Je ne prendrais pas cette mesure à la légère. – skaffman

Répondre

1

Rechercher http://www.searchblox.com/. Une autre alternative, bien que n'étant pas un fournisseur de cloud, serait d'utiliser la recherche élastique http://www.elasticsearch.org/. Il est super simple à configurer et à utiliser et fonctionne généralement OOTB.

également ici est une perspective par le créateur de ES se comparant à d'autres fournisseurs: ElasticSearch, Sphinx, Lucene, Solr, Xapian. Which fits for which usage?

+0

SearchBlox est une recherche basée sur le cloud? Semble être une installation personnalisée locale de Lucene –