J'ai développé un index et une application de recherche avec la bibliothèque Lucene. mais cette bibliothèque a quelques limites dans le classement personnalisé dans mon contexte, mis à part ses performances, j'ai besoin d'évolutivité et d'accès à toutes sortes de fréquences de mots et etc. Y at-il une bibliothèque de texte intégral open source puissante disponible?Quel est le meilleur projet open source de recherche en texte intégral (.NET préféré)?
12
A
Répondre
5
http://www.sphinxconnector.net/
Principales caractéristiques Sphinx sont:
- haute indexation et la recherche des performances;
- des outils avancés d'indexation et d'interrogation (tokenizer de texte souple et riche en fonctionnalités, langage d'interrogation, plusieurs modes de classement différents, etc.);
- post-traitement des ensembles de résultats avancés (SELECT avec expressions, WHERE, ORDER BY, GROUP BY, etc. sur les résultats de recherche de texte);
- évolutivité éprouvée jusqu'à des milliards de documents, téraoctets de données et des milliers de requêtes par seconde;
- une intégration facile avec les sources de données SQL et XML, et les interfaces de recherche SphinxAPI, SphinxQL ou SphinxSE;
- mise à l'échelle facile avec des recherches distribuées.
Pour développer un bit, Sphinx:
- a une vitesse élevée d'indexation (jusqu'à 10 à 15 MB/s par noyau sur un étalon interne);
- a une vitesse de recherche élevée (jusqu'à 150-250 requêtes/s par cœur contre 1 000 000 de documents, 1,2 Go de données sur un banc d'essai interne);
- a une grande évolutivité (les plus grands index de cluster connus sur plus de 3 000 000 000 de documents, et les pics les plus achalandés de plus de 50 000 000 requêtes/jour);
- fournit un bon classement de pertinence en combinant le classement de proximité d'expression et le classement statistique (BM25);
- fournit des capacités de recherche distribuée;
- fournit une génération d'extraits de document (snippets);
- fournit une recherche depuis l'application avec les interfaces SphinxAPI ou SphinxQL, et depuis MySQL avec le moteur de stockage SphinxSE enfichable;
- prend en charge booléen, phrase, proximité de mot et d'autres types de requêtes;
- prend en charge plusieurs champs de texte intégral par document (jusqu'à 32 par défaut);
- prend en charge plusieurs attributs supplémentaires par document (ie.groupes, horodateurs, etc.);
- prend en charge les mots vides;
- prend en charge les dictionnaires de formes de mots morphologiques;
- prend en charge les exceptions de jetons;
- prend en charge à la fois les codages mono-octet et UTF-8; Supporte les souches (les mots anglais, russe et tchèque sont intégrés et les mots suivants sont disponibles pour le français, l'espagnol, le portugais, l'italien, le roumain, l'allemand, le néerlandais, le suédois, le norvégien, le danois, le finnois et le hongrois). librairie de libstemmer de partie);
- prend en charge MySQL nativement (tous les types de tables, y compris MyISAM, InnoDB, NDB, Archive, etc. sont supportés);
- prend en charge PostgreSQL nativement;
- prend en charge les bases de données compatibles ODBC (MS SQL, Oracle, etc.) en mode natif;
- ... a plus de 50 autres fonctionnalités non listées ici, se référer à l'API et au manuel de configuration!
J'ai trouvé que les performances avec Lucene.net sont incroyables, donc c'est une surprise d'entendre quelqu'un dire qu'ils ont des problèmes de performance! (BTW, Lucene a une assez bonne API pour la notation personnalisée etc ainsi) –
Je n'ai aucun problème avec la performance de lucene mais le classement personnalisé est si difficile. – Ehsan