Merci.
Aucune des bases de données "NoSQL" existantes ne fournit une implémentation raisonnable de quelque chose qui pourrait s'appeler "recherche en texte intégral". MongoDB en particulier n’a pour l’instant pratiquement rien (la correspondance avec des expressions rationnelles n’est pas une recherche en texte intégral et une recherche en utilisant les opérateurs $ in ou $ all sur une liste de mots clés est juste une très mauvaise implémentation d’une "recherche en texte intégral"). Utiliser Solr, ElasticSearch ou Sphinx est simple: une implémentation et une intégration au niveau de l'application. Votre choix dépend largement de vos exigences et de la configuration actuelle.
Voici les détails sur Riak Search http://wiki.basho.com/Riak-Search.html Et une présentation également
Oui. Voir CouchDB-Lucene qui est une extension CouchDB pour prendre en charge toutes les requêtes Lucene des données.
MarkLogic a de meilleures options pour la recherche de texte, si je me souviens bien. Voici une discussion sur le sujet , bien que ce soit sur leur blog, écrit par leurs auteurs.
Je suis impliqué dans le développement d'une application utilisant Solandra (Apache Solr basé sur Cassandra). D'après mon expérience, le système est assez stable et capable de gérer les données TB +. Personnellement, je suis assez satisfait du logiciel pour les raisons suivantes: 1. Partitionnement automatisé des données grâce au backend Cassandra. 2. Fonctions d'interrogation riches (dues à Solr et Lucene). 3. Lecture et écriture rapides (écrit beaucoup plus rapidement que les lectures).
Cependant, à l’heure actuelle, Solandra ne prend pas en charge les mutations par lots Autrement dit, je peux insérer 100 colonnes en une seule insertion dans Cassandra, mais Solandra ne le supporte pas.
Pour MongoDB, il n’existe pas encore de fonctionnalité d’indexation de texte intégral, bien qu’il en existe peut-être une dans le pipeline, peut-être pour la v2.2 .
En attendant, vous pouvez créer un index inversé simple en utilisant un champ de tableau de chaînes et en y ajoutant un index, comme décrit ici: Recherche de texte intégral dans Mongo
Vous pouvez également conserver un index de texte intégral parallèle dans un index dédié Solr ou Lucene et, si vous vous sentez vraiment ambitieux, reproduire directement dans votre magasin de texte intégral à partir de Mongo oplog. Sinon, remplissez les deux et restez synchronisé à partir de la logique de votre application.
Je viens juste de terminer cette opération en utilisant les données stockées dans MongoDB tout en ayant mon moteur Fulltext dans Sphinx Search . Je sais que mongo a un problème faisant l'objet d'un vote pour l'ajout du texte intégral à une future version; Cependant, à ce stade, ils ne l'ont pas.
Il existe plusieurs façons d’insérer vos informations Mongo dans le sphinx; Cependant, celui avec lequel j'ai le plus de chance (et qui a été extrêmement facile) est via xmlpipe2 . Il m'a fallu un peu de temps pour bien comprendre comment l'utiliser. Cependant, cet article: Sphinx xmlpipe2 dans PHP présente un parcours remarquable qui montre (au moins en PHP) comment construire le document, puis comment l'insérer dans sphinx.
Essentiellement, ma configuration ressemble à ceci:
source my_source {
type = xmlpipe
xmlpipe_command = /usr/bin/php /www/generateSphinXml.php identifierForMyTable
}
avec mon index ressemblant à ça:
index my_index {
source = my_source
path = /usr/local/sphinx/var/data/my_index
docinfo = extern
min_Word_len = 1
mlock = 0
morphology = stem_en
charset_type = utf-8 //<----- This is q requirement however.
enable_star = 1
html_strip = 0
min_prefix_len = 2
}
J'ai eu un excellent succès avec cela; j'espère que vous pourrez trouver cela utile.
Si vous utilisez PHP, il existe une excellente solution pour la recherche en texte intégral dans la base de données No-MongoDB nommée MongoLantern. http://sourceforge.net/projects/mongolantern/
Auparavant, j'utilisais Sphinx + MongoDB pour effectuer une recherche en texte intégral. Les performances étaient excellentes, mais la qualité des résultats très médiocre. Avec MongoLantern, ma recherche actuelle s’est beaucoup améliorée.
MongoLantern est également répertorié dans le site MongoDB.
S'il vous plaît laissez-moi savoir si vous essayez de votre choix.
projet cLunce. Aussi xapian non mentionné ci-dessus. J'utilise Sphinx et c'est très bien mais un peu maladroit à mettre en place. En fait, je préfère transférer les données de Mongo vers Sphinx via XMLPIPE2 au lieu d'utiliser le code SQL de Sphinx dans le fichier sphinx.conf.
Solr pourrait être utilisé avec le connecteur Mongo 10gen, ce qui permet de transmettre des données à cet endroit (entre autres)
https://github.com/10gen-labs/mongo-connector/tree/master/mongo-connector
De leur exemple:
python mongo_connector.py -m localhost:27217 -t http://localhost:8080/solr
Couchbase 5.0 propose des fonctionnalités de recherche en texte intégral basées sur le moteur open source Bleve. Vous activez l'indexation pour le texte intégral et commencez à utiliser les documents JSON existants dans la base de données.
Quelques diapositives et vidéo de présentation sur le sujet, mentionnant Elasticsearch et Lucene également ... https://www.slideshare.net/Couchbase/fulltext-search-how-it-works-and-what-it-can- faire
Certainement Solr. C'est NoSQL.
Il a: