Индексирование и поиск файлов Python - PullRequest
12 голосов
/ 10 февраля 2009

У меня есть большие файлы (hdf), которые мне нужны для поиска. Для Java я бы использовал Lucene для этого, так как это механизм индексации файлов и документов. Я не знаю, каким будет эквивалент Python.

Кто-нибудь может порекомендовать, какую библиотеку использовать для индексации большой коллекции файлов для быстрого поиска? Или это предпочтительный способ бросить свой собственный?

Я смотрел на пилицен и lupy , но оба проекта кажутся довольно неактивными и не поддерживаются, поэтому я не уверен, стоит ли на них полагаться.

Заключительные замечания: Woosh и Pylucene кажутся многообещающими, но Woosh по-прежнему является альфа-версией, поэтому я не уверен, что хочу на нее полагаться, и у меня проблемы с компиляцией Pylucene, и реальных выпусков нет. После того, как я посмотрел немного больше на данные, это в основном числа и текстовые строки по умолчанию, так что теперь механизм индексирования мне не поможет. Надеемся, что эти библиотеки стабилизируются, и позже посетители найдут для них применение.

Ответы [ 5 ]

9 голосов
/ 10 февраля 2009

Lupy удален , и разработчики рекомендуют PyLucene. Что касается PyLucene, его активность в списке рассылки может быть низкой, но он определенно поддерживается. Фактически, он только недавно стал официальным подпроектом apache .

Вы также можете посмотреть на нового соперника: Черт . Это похоже на lucene, но реализовано на чистом питоне.

5 голосов
/ 10 февраля 2009

Я еще не делал индексацию, но может быть полезно следующее: -

  1. pyIndex - http://rgaucher.info/beta/pyIndex/ - Библиотека индексации файлов для Python
  2. http://www.xml.com/pub/a/ws/2003/05/13/email.html - это скрипт для поиска почты Outlook с использованием Python и Lucene
  3. http://gadfly.sourceforge.net/ - База данных водяных оводов Аарона (я думаю, вы можете использовать эту для индексации. Сам не использовал ее).

Что касается использования файлов HDF, я слышал о модуле с именем h5py.

Надеюсь, это поможет.

4 голосов
/ 10 февраля 2009

Я бы предложил Сфинкс . Он очень активен, имеет гораздо больше функций и кажется быстрее, чем Lucene.

2 голосов
/ 21 апреля 2009

Популярной библиотекой поиска информации на C ++, которая часто используется с Python, является Xapian http://xapian.org/

Это невероятно быстро и может успешно управлять большими объемами данных, однако не так легко расширяется, как Lucene.

0 голосов
/ 06 апреля 2019

Эластичный поиск может использоваться для индексации документов и поиска по ключевым словам
Elasticsearch также может быть интегрирован с graph db и hadoop Некоторые URL ниже:
1) https://www.elastic.co/products/elasticsearch
2) https://towardsdatascience.com/getting-started-with-elasticsearch-in-python-c3598e718380

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...