@My1Name

Можно ли использовать Elasticsearch для поиска в файлах?

Всем доброго времени суток. Подскажите пожалуйста, можно ли использовать Elasticsearch для поиска в файлах? Например, у меня есть динамический файл размером 100Mb с текстовым содержанием следующего вида:
<!--START-block-1-->
тут какой-то текст в котором нужно искать
<!--END-block-1-->
<!--START-block-2-->
тут какой-то текст в котором нужно искать
<!--END-block-2-->

Я знаю как осуществить поиск в таком файле с помощью JAVA (core) и вернуть соответствующий текстовый блок при 100% совпадении искомого слова или словосочетания. Однако, возможности Elasticsearch гораздо более привлекательны по описаниям в интернете... Он может игнорировать ошибки в словах, и даже искать транслитерацию. Можно ли использовать Elasticsearch для такой задачи? И если можно, то как его подключить и настроить (желательно, через добавление jar-файла в Spring-boot проект и дальнейшей MVC сборки)?
  • Вопрос задан
  • 184 просмотра
Пригласить эксперта
Ответы на вопрос 2
Можно ли использовать Elasticsearch для поиска в файлах?
Elasticsearch не предназначен для индексирования файлов непосредственно. Поскольку используется SDK для работы через API, при создании документов с текстом. Таким образом, они (документы) индексируются и доступны для последующего поиска.
Кроме того, Elasticsearch плохо работает в случае частых обновлений, поскольку ему надо часто обновлять кэш, и это приводит к дополнительным накладным расходам. Короче, Elasticsearch - это перебор для данной задачи.

Не понятно зачем используется файл, когда можно использовать СУБД. Например, RediSearch (из Redis Stack) - позволяет производить полнотекстовый поиск, включая русский.
Так, вместо большого файла приложение должно работать с СУБД, храня единицы документов (то, что в вашей терминологии называется блоком).

В реальности файл гораздо меньше. Он где-то 10Мб (Max) и перезаписывается подобно стеку: Первый зашёл - первый ушёл. Дозапись в конец файла с фиксированным количеством текстовых блоков.
Что касается очереди FIFO, то она поддерживается в Redis. В ней можно хранить идентификаторы документов, подлежащих обработке.
Ответ написан
dimonchik2013
@dimonchik2013
non progredi est regredi
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Bell Integrator Ульяновск
До 400 000 ₽
Bell Integrator Хабаровск
До 400 000 ₽
Bell Integrator Ижевск
До 400 000 ₽
15 апр. 2024, в 22:14
30000 руб./за проект
02 мая 2024, в 21:59
15000 руб./за проект