2009-02-10 12 views
11

Mam duże pliki wyłączania (hdf), które muszę włączyć, aby umożliwić wyszukiwanie. W przypadku Javy używam do tego Lucene, ponieważ jest to mechanizm indeksowania plików i dokumentów. Nie wiem, jaki byłby jednak odpowiednik pytona.Indeksowanie i wyszukiwanie plików Python

Czy ktoś może polecić bibliotekę, której powinienem użyć do indeksowania dużej kolekcji plików w celu szybkiego wyszukiwania? Czy jest to preferowany sposób na samodzielne toczenie?

Spojrzałem na pylucene i lupy, ale oba projekty wydają się raczej nieaktywne i nieobsługiwane, więc nie jestem pewien, czy powinien na nich polegać.

Uwagi końcowe: Woosh i PyLucene wydaje się obiecujące, ale nadal jest woosh alfa, więc nie jestem pewien, czy chcę polegać na nim, a ja mam problemy z kompilacją PyLucene, i nie istnieją żadne rzeczywiste uwalnia od niego. Po tym, jak spojrzałem trochę bardziej na dane, były to głównie liczby i domyślne ciągi tekstowe, więc teraz silnik indeksujący mi nie pomoże. Mam nadzieję, że te biblioteki ustabilizują się, a później odwiedzający znajdą dla nich jakiś pożytek.

Odpowiedz

9

Lupy has been retired i programiści zalecają PyLucene zamiast tego. Jeśli chodzi o PyLucene, jego aktywność list dyskusyjnych może być niska, ale zdecydowanie jest obsługiwana. W rzeczywistości niedawno stał się on numerem seryjnym official apache subproject.

Możesz także chcieć spojrzeć na nowego kandydata: Whoosh. Jest podobny do lucenu, ale zaimplementowany w czystym pythonie.

5

nie robiłem indeksowania zanim jednak następujące mogą być pomocne: -

  1. pyIndex - http://rgaucher.info/beta/pyIndex/ - indeksowanie plików biblioteki dla Pythona
  2. http://www.xml.com/pub/a/ws/2003/05/13/email.html - Ów skrypt do wyszukiwania wiadomości e-mail za pomocą programu Outlook Python i Lucene
  3. http://gadfly.sourceforge.net/ - Aaron wody na bazie giez (. Myślę, że można korzystać z tego jeden dla indeksowania nie korzystałem to sam.)

Jeśli chodzi o używanie plików HDF, słyszałem o module o nazwie h5py.

Mam nadzieję, że to pomoże.

+0

Mogę dobrze odczytać pliki hdf5 za pomocą obiektów pytliwych, wystarczy znaleźć odpowiednie narzędzie do indeksowania informacji, które wypakowuję. – Staale

+0

Mam niewielkie doświadczenie w tej dziedzinie. Ponieważ możesz już czytać pliki hd5, myślę, że pyIndexer może ci pomóc. Mam niewielkie doświadczenie w tej dziedzinie i mam nadzieję, że twój projekt dobrze się sprawdzi. – batbrat

4

Proponuję Sphinx. Jest bardzo aktywny, ma znacznie więcej funkcji i wydaje się szybszy od Lucene.

+0

Sfinks jest świetny, a IMHO, łatwiejszy w instalacji, konfiguracji itd. Niż pyluce. –

2

Popularnym C++ informacje oparte odzyskiwanie biblioteki, który jest często stosowany w Pythonie jest Xapian http://xapian.org/

Jest niezwykle szybki i może szczęśliwie zarządzanie dużymi ilościami danych, jednak to nie jest aż tak łatwo rozszerzalny jak Lucene.

Powiązane problemy