LINUX.ORG.RU

полнотекстовый поиск, встраиваемый в приложение на python без субд

 , ,


0

2

Что посоветуете?
Нужен базовый поиск по текстовым данным. Каждому блоку текста соответствует идентификатор. Также у каждого блока есть мета-информация (вроде линковки с другими блоками, дата создания, числовые поля) - но по ней необязательно уметь фильтровать, это уже есть на стороне приложения. Блоки данных не изменяемы и не удаляемы, однако былобы здорово иметь возможность их «архивировать» - понижать приоритетность и скорость поиска по таким блоком за счет уменьшения размера индексов.

Средний размер блока - около килобайта, колво блоков - десятки тысяч. Текст в блоках осмысленный.

Какихто конкретных требований нету или они мне кажутся очевидными.

Но нужно именно встраиваемое решение, не требующее отдельного сервера субд или облачного провайдера (хотя последнее обсуждаемо).

Ответ на: комментарий от pawnhearts

Чтож ты так сразу обухом по голове? Не видишь, что товарищ сервер от СУБД не отличает и хочет встраиваемые, но согласен на облако?

Надо издалека зайти. Дескать что хочет сделать. Может ему grep нужен.

anonymous ()
Ответ на: комментарий от anonymous

А почему не то?

Не особо в курсе, но разве реализация (а не просто обертка жабы) lucene на питоне не заброшена и доведена до жизнеспособности?

Deleted ()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от Deleted

для питона есть только в варианте клиентской обертки, требующей самой грунги запущенной в серверном режиме

правда конкретно этот проект ваще мертвый, но есть более-менее живой
https://github.com/hhatto/poyonga

но это всеравно клиентская либа и требуется сервер

genryRar ★★ ()

Здраствуйте. Я, Генри. Хотел бы чтобы вы сделали библиотеку, полнотекстовый поиск суть такова… Программист может искать блоки текста, просто текст и буквы. И если программист ищет тексты то тексты в блоках данных, метаинформация блочная, бывают даты создания и числовые поля. Можно уметь фильтровать… И блоки раз неизменяемые то сделать так что там архивировать… А движок можно поставить так что вдали от СУБД, но когда ищещь они преобразовываются в индексы. Можно понижать приоритетность и т.п. возможности как в Elasticsearch. И средний размер около килобайта, и чтобы текст осмысленный. Конкретных требований нету и т.п. И чтобы на Python…

P.S. Я джва года хочу такую библиотеку.

lovesan ★☆ ()
Последнее исправление: lovesan (всего исправлений: 1)
Ответ на: комментарий от genryRar

Кроме Lucene, есть ещё SOLR и Elastic Search. Внутри себя используют Lucene, но добавляют свои расширения - возможность асинхронной работы (поиск одновременно с индексацией содержимого), возможность создания отдельного сервера или кластера серверов (для балансировки нагрузки) или работы в облаке.

Хотя написаны на Java, обращение к ним возможно из Python и любого другого языка благодаря REST API и другим веб-интерфейсам.

Partisan ★★★ ()