Как организовать поиск по библиотеке книг?

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

А если не так, то как? Я не профессионал, может чего-то не знаю, не понимаю. Подскажите пожалуйста знающие. Как правильно организовать поиск фрагментов текста по библиотеке книг?
  • Вопрос задан
  • 139 просмотров
Пригласить эксперта
Ответы на вопрос 2
@mik222
Ответ от Uwe_Boll неправильный(а то и прямо, вредный)
Дело в том, что не identity поиск не может использовать стандартный индекс.
------------
Я имею ввиду, что запросы вида %some word% нельзя отсортировать, и соответственно по ним нельзя пройтись бинарным поиском как это делают в случае обычных индексов, делая ваш индекс, фактически, бессмысленным превращая O(log N) алгоритм в O(N)
-------------
У вас, фактически, только один вариант:
Обратный индекс с взвешиванием по https://en.wikipedia.org/wiki/Tf%E2%80%93idf
Для этого вы можете использовать:
https://www.postgresql.org/docs/8.3/static/textsea...
https://www.sqlite.org/fts3.html
dev.mysql.com/doc/refman/5.7/en/fulltext-search.html
https://www.elastic.co/
Ответ написан
Комментировать
Uwe_Boll
@Uwe_Boll
Я Злой и Страшный Уве Болл в Разработке знаю Толк
индексы поставь на название книги и индекс на ISBN
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы