Je recherche un bon moteur d'indexation open source (avec LGPL ou une licence permissive) pour une application node.js, quelque chose comme Lucene. Je recherche l'indexation et la recherche en cours et je ne suis pas intéressé par l'indexation de serveurs comme Sphinx ou Solr.
Je n'ai pas peur de créer des liaisons pour une bibliothèque C/C++, donc je suis également ouvert à ce genre de suggestions.
Jusqu'à présent, j'ai trouvé
Je pourrais "rouler le mien", mais je préférerais utiliser une solution déjà existante.
EDIT: Pourquoi je ne suis pas intéressé par un serveur d'index autonome: J'utilise une base de données de magasin de valeurs-clés en cours de traitement, donc ce serait tout un gaspillage devant sortir du processus de requête.
Juste une mise à jour de ma réponse précédente - car il y avait tellement de discussions, je ne voulais pas que cette mise à jour soit perdue.
Vous pouvez le télécharger ici :
Oui, consultez la nouvelle version Norch
Norch est basé sur le module search-index pour node.js, qui est à son tour basé sur le puissant index levelDB de Google.
EDIT: Utilisez le module d'index de recherche pour une capacité de recherche rapide "en cours".
Pouvez-vous expliquer pourquoi vous n'êtes pas intéressé par l'utilisation d'un index externe? Pour la recherche en texte intégral, je reviens toujours à l'utilisation des capacités d'indexation en texte intégral de PostgreSQL - c'est très rapide, l'indexation ne nécessite pas de mise à jour d'index complète (comme le fait Solr), et les résultats sont retournés plus rapidement que les solutions basées sur Lucene (telles que Elastic Search ).
Mais si vous voulez vraiment le faire en cours de processus, vous voudrez probablement regarder Lunr: http://lunrjs.com/ - cela fonctionne dans Node, pas seulement dans le navigateur.
Edit: Voici où j'ai obtenu mes statistiques sur Postgres étant plus rapide que Lucene: http://fr.slideshare.net/billkarwin/full-text-search-in-postgresql - voir la diapositive 49.
Edit: Je ne sais pas quel type de vitesse vous recherchez dans/hors du processus, mais notre base de données PostgreSQL peut faire 100 000 requêtes par seconde sans casser une sueur, et ce n'est même pas sur les SSD. Vous pensez peut-être trop à vos besoins en matière de performances - après tout, une fois que vous devez aller sur plusieurs nœuds (ou utiliser un cluster pour tirer parti de tous les processeurs), vous devrez quand même effectuer un vidage en cours de traitement.
Voyant de recherche de texte intégral , est un module de nœud écrit pur en JS pour effectuer des recherches de texte intégral. Ici vous pouvez trouver le lien du dépôt git actuel: https://github.com/frankred/node-full-text-search-light