2009-02-10 18 views
11

Je dispose d'un grand nombre de fichiers de définition (hdf) dont j'ai besoin pour activer la recherche. Pour Java, j'utiliserais Lucene pour cela, car c'est un moteur d'indexation de fichiers et de documents. Je ne sais pas ce que serait l'équivalent python.Indexation et recherche de fichier Python

Quelqu'un peut-il recommander quelle bibliothèque je devrais utiliser pour indexer une grande collection de fichiers pour une recherche rapide? Ou est le moyen préféré de rouler le vôtre?

J'ai regardé pylucene et lupy, mais les deux projets semblent plutôt inactifs et non pris en charge, donc je ne suis pas sûr de pouvoir compter sur eux. Woosh et pylucene semblent prometteurs, mais woosh est toujours alpha donc je ne suis pas sûr que je veuille m'en fier, et j'ai de la difficulté à compiler du pylucène, et il n'y a pas de version réelle. Après avoir regardé un peu plus les données, ce sont surtout des nombres et des chaînes de caractères par défaut, alors maintenant, un moteur d'indexation ne m'aidera pas. Espérons que ces bibliothèques se stabiliseront et que plus tard les visiteurs trouveront quelque utilité pour eux.

Répondre

9

Lupy has been retired et les développeurs recommandent PyLucene à la place. Quant à PyLucene, son activité de liste de diffusion peut être faible, mais elle est définitivement supportée. En fait, il est récemment devenu un official apache subproject. Vous pouvez également regarder un nouveau candidat: Whoosh. C'est similaire à Lucene, mais implémenté en python pur.

5

Je ne l'ai pas fait avant l'indexation, mais les éléments suivants peuvent être utiles: -

  1. pyIndex - http://rgaucher.info/beta/pyIndex/ - Bibliothèque d'indexation de fichiers pour Python
  2. http://www.xml.com/pub/a/ws/2003/05/13/email.html - Thats script pour la recherche en utilisant la messagerie Outlook Python et Lucene
  3. http://gadfly.sourceforge.net/ - base de données de taon de l'eau Aaron (. Je pense que vous pouvez utiliser celui-ci pour l'indexation n'ont pas utilisé moi-même.)

En ce qui concerne l'utilisation des fichiers HDF, j'ai entendu parler d'un module appelé h5py.

J'espère que cela aide.

+0

Je peux très bien lire les fichiers hdf5 en utilisant pytables, j'ai juste besoin de trouver le bon outil pour indexer les informations que j'en extrait. – Staale

+0

J'ai peu d'expérience dans le domaine. Puisque vous pouvez déjà lire les fichiers hd5, je pense que pyIndexer pourrait fonctionner pour vous. J'ai peu d'expérience dans le domaine et j'espère que votre projet fonctionne bien. – batbrat

4

Je suggérerais Sphinx. C'est très actif, a beaucoup plus de fonctionnalités et semble plus rapide que Lucene.

+0

Sphinx est grand, et à mon humble avis, plus facile à installer, à configurer, etc, que pylucene. –

2

Un populaire C++ information basée bibliothèque de récupération qui est souvent utilisé avec Python est Xapian http://xapian.org/

Il est incroyablement rapide et peut heureusement gérer de grandes quantités de données, mais il est pas tout à fait aussi facilement extensible Lucene.