La recherche plein texte dans les bases de données NoSQL
- A personne ici n'ont aucune expérience dans le déploiement d'un véritable système en ligne qui a une recherche en plein texte dans les bases de données NoSQL?
- Par exemple, comment fonctionne la recherche de texte intégral comparer dans MongoDB, Riak et CouchDB?
- Certains de la métrique que je cherche, c'est la facilité de déploiement et maintaince et bien sûr de la vitesse.
- Comment matures sont-ils? Ils sont tout de remplacement pour la Lucene infrastructure?
Grâce.
- RavenDB utiliser lucene par défaut. Vérifiez ici ravendb.net/faq/lucene-queries-examples. Alors que dire intégré dans une recherche plein texte. Je l'ai utilisé dans le passé, mais il me semble "pas prêt pour la production'.
- MarkLogic est une base de données NoSQL construit en temps réel avec la recherche de texte intégral à cœur. Voir developer.marklogic.com/products/marklogic-server/which-nosql
- La version open source de MarkLogic du produit, ExistDB, dispose d'un grand texte intégral de la mise en œuvre et je l'ai trouvé vraiment facile à utiliser une fois que c'est mis en place. Vous pouvez le trouver ici: exist-db.org/exist/apps/homepage/index.html
- Voir aussi, stackoverflow.com/questions/13174627/...
Vous devez vous connecter pour publier un commentaire.
Aucun "NoSQL" de la base de données fournit une mise en œuvre raisonnable de quelque chose qui pourrait être nommé "recherche plein texte". MongoDB, en particulier, a à peine de rien jusqu'à présent (correspondant à l'aide d'expressions régulières n'est pas de recherche de texte intégral et de recherche à l'aide de $dans$, ou de tous les opérateurs sur un mot-clé de la liste de mots est juste une mauvaise mise en œuvre d'une "recherche plein texte"). À l'aide de Solr, ElasticSearch ou Sphinx est simple - une mise en œuvre et l'intégration au niveau de l'application. Votre choix largement dépend de vos besoins et de la configuration actuelle.
Voici les détails sur Riak de Recherche http://wiki.basho.com/Riak-Search.html
et un présentation sur elle ainsi
Oui. Voir CouchDB-Lucene qui est un CouchDB extension à l'appui de l'ensemble de Lucene, les requêtes de données.
MarkLogic a de meilleures options pour la recherche de texte, si je me souviens bien. Voici une la discussion sur le sujet, même si elle est sur leur blog, à partir de leurs auteurs.
Je suis impliqué dans le développement d'une application utilisant Solandra (Cassandra basé sur Apache Solr). Dans mon expérience, le système est très stable et capable de gérer TB+ données. Personnellement, je suis très heureux avec le logiciel pour les raisons suivantes:
1. Partitionnement automatique des données en raison de Cassandra backend.
2. Riche des capacités d'interrogation (en raison de Solr et Lucene).
3. Des vitesses de lecture et d'écriture (écrit beaucoup plus rapide que le lit).
Cependant, actuellement, Solandra, je crois ne pas en lots de soutien des mutations. C'est, je peux insérer des 100 colonnes en une seule insertion dans Cassandra, cependant Solandra ne prend pas en charge cette.
Pour MongoDB, il n'y a pas une pleine indexation de texte intégral fonctionnalité encore, toutefois, il y a peut-être l'un dans le pipeline, peut-être en raison de v2.2.
En attendant, vous pouvez créer un index inversé à l'aide d'un tableau de chaîne de terrain, et de mettre un index sur elle, comme décrit ici: Recherche plein Texte dans Mongo
Ou, vous pourriez maintenir un parallèle index de texte intégral dans une Solr ou de l'index Lucene, et si vous vous sentez vraiment ambitieux répliquer directement à votre plein-texte en magasin à partir de la Mongo oplog. Sinon, remplir les deux et conserver la synchronisation à partir de votre application logique.
text
index depuis la version 2.4Je viens de terminer la réalisation de ce que les données sont stockées dans MongoDB tout en ayant mon Fulltext engin dans Sphinx De Recherche. Je sais mongo a un votables problème pour l'ajout de texte intégral pour une version ultérieure; toutefois, à ce stade ils ne l'ont pas.
Il y a plusieurs manières d'insérer votre Mongo de l'information dans sphinx; cependant celui que j'ai trouvé le plus de chance (et a été très facile) est par xmlpipe2. Il m'a fallu un peu de bien comprendre comment utiliser ce; cependant cet article: Sphinx xmlpipe2 en PHP a une magnifique promenade à travers ce qui montre (au moins en PHP) comment faire pour créer le document, puis comment l'insérer dans sphinx.
Essentiellement ma config finit par ressembler à ceci:
avec mon index, puis comme ceci:
J'ai eu un excellent succès; j'espère que vous trouverez ce utile.
Si vous utilisez PHP, il est une excellente solution pour la recherche de texte intégral dans le No-SQL base de données MongoDB nommé comme MongoLantern. http://sourceforge.net/projects/mongolantern/
Auparavant, j'étais à l'aide de Sphinx+MongoDB pour effectuer la recherche fulltext, la performance était grand, mais la qualité du résultat était très pauvre. Avec MongoLantern actuel de ma recherche s'est beaucoup amélioré.
MongoLantern est également répertorié dans MongoDB site.
S'il vous plaît laissez-moi savoir si vous l'essayez de votre propre.
cLunce projet. Aussi xapian ne sont pas mentionnés ci-dessus. J'utilise Sphinx et c'est très bon, mais un peu maladroit à mettre en place. Je préfère la tuyauterie de données de Mongo dans Sphinx via XMLPIPE2, au lieu d'utiliser Sphinx' SQL dans sphinx.fichier conf.
Solr peut être utilisé avec 10gen de Mongo Connecteur, ce qui permet de pousser des données (entre autres)
https://github.com/10gen-labs/mongo-connector/tree/master/mongo-connector
De leur exemple:
Certainement Solr. Il est NoSQL.
Il a:
Couchbase 5.0 publie le texte complet des fonctionnalités de recherche construite sur l'open source Bleve moteur. Vous activer l'indexation de texte intégral et commencer à l'utiliser contre existant JSON documents dans la base de données.
Des diapositives de présentation et vidéo couvrant le sujet, en mentionnant Elasticsearch et Lucene ainsi... https://www.slideshare.net/Couchbase/fulltext-search-how-it-works-and-what-it-can-do