Index File Contents for Search

Right now, file names are indexed for search but the contents are not. It would be nice if the contents of files were also indexed, at least for the most common text-based files types, e.g. txt, pdf, doc, xls, csv, etc.

Any plans for this?

8 лайков

No plans for this at the moment.

«Я тоже»
Мы также хотим, чтобы вложения (в нашем случае PDF-файлы) индексировались поисковой системой.

3 лайка

Это очень характерная функция для корпоративных клиентов. У нас пока нет конкретных планов с указанием сроков, и я не уверен, как Postgres будет работать с огромными PDF-документами.

Конечно, мы об этом думали на протяжении многих лет и, возможно, займемся этим в ближайшие несколько лет.

4 лайка

Интересно, добавил ли Discourse возможность индексировать и искать по PDF-файлам?

1 лайк

Пока нет, но в плагине это вполне реализуемо.

1 лайк

При разработке такого плагина: с чего бы вы начали? Будучи полным новичком в коде Discourse, я, вероятно, попытался бы подключиться к UploadCreator, но это может быть совершенно неверно.

Разработка плагина для Discourse, интегрированного с Paperless, была бы хорошим началом.

Такой плагин, мягко говоря, потребует значительных усилий, как уже отмечалось выше.

Для создания подобного плагина необходимо, чтобы API Discourse поддерживал внешнюю обработку документов. Доступна ли такая функция на данный момент?

Этот плагин также потребует интеграции с возможностями поиска, предоставляемыми API Discourse. Хотя это непростая задача, она уже была реализована в нескольких существующих плагинах, например, в плагине discourse/discourse-algolia.

Другие аспекты, которые стоит учесть

  • Резервное копирование

Это то, на чем я лично хотел бы попробовать свои силы. Я начал с изучения API Paperless и реверс-инжиниринга проекта discourse/discourse-algolia… однако есть и другие плагины, интегрирующиеся с поиском.

Есть ли какие-либо мысли по поводу выбора Paperless? Мне нравится, насколько активен этот проект, и то, сколько задач в нём было закрыто, при этом текущее количество открытых задач равно нулю.

2 лайка

Это было бы ОГРОМНЫМ улучшением, особенно для тех форумов, где хранится много документации в формате PDF, сканов или изображений. Если задача ограничивается поиском, то в идеале нужно просто извлечь или создать текст, а затем сохранить его в отдельном столбце в PostgreSQL. После этого можно будет использовать уже встроенный полнотекстовый поиск PostgreSQL.

Например, в Linux можно использовать pdftotext для извлечения текста из PDF и сохранения его в базе данных. Другая идея (более дорогая) — использовать компьютерное зрение на базе ИИ для объяснения или извлечения содержимого PDF или изображения с последующим сохранением в БД.

Что думаете?

2 лайка

Итак, я изучаю этот вопрос и с помощью ИИ составляю макет, как лучше всего этого достичь. На ум приходит несколько идей. Использование Apache TIKA позволило бы нам выполнить OCR практически для любого текстового формата файла, включая изображения. Это был бы вариант с самостоятельным размещением. Или же: использовать Gemini Flash 1.5 (например), чтобы не только выполнять OCR, но и описывать просматриваемые и анализируемые изображения, а затем сохранять эти данные в таблице/столбце PostgreSQL для поиска. Конечно, это потребует значительных затрат токенов на начальном этапе для повторной обработки всех постов с вложениями/загрузками, но это было бы наиболее полезно. Похоже, получаешь то, за что платишь?

1 лайк