Недавно я почувствовал раздражение по поводу ограничений механизмов индексации документов. Я разрабатывал небольшой веб-сайт, который нуждался в некоторых достаточно надежных возможностях поиска, но из-за их аппаратных ограничений я не смог развернуть решение Lucene-ish (такое как Solr или ElasticSearch, как я обычно это делал) для удовлетворения этой потребности.
И даже тогда, когда мне нужно было обслуживать некоторые сложные данные и вычисления, которые требовали интенсивного использования базы данных, мне не нужно было обрабатывать более 250 тысяч потенциальных записей. Развертывание всего экземпляра Solr или ES только для того, чтобы справиться с этим, казалось пустой тратой.
После того, как я подумал об этом, это кажется довольно большой проблемой. Большинство людей обрабатывают требования поиска исключительно с помощью SQL. Они просто запускают SQL-запросы для своих данных и все. Их поисковые возможности также оказываются ужасными.
Выполнение полного полнотекстового поиска с использованием подстановочных знаков может быть болезненно медленным на некоторых системах (в частности, на общих хостах) и приводить к сбою в базе данных, особенно если у вас сложные запросы и много объединений.
Вы заканчиваете тем, что сделали многократные запросы на одном запросе от пользователя. Вы можете обойти это с помощью еще более сложных запросов, но посмотрите предыдущий пункт.
Отсутствие функций обычно присутствует в полнотекстовых движках.
У баз данных была та же проблема, что и необходимость развертывания в качестве сервера, а затем появился SQLite, и внезапно мы смогли развернуть базу данных, которая содержалась в одном файле. Мой Googling ничего не дал - интересно, существует ли что-то подобное для полнотекстовой индексации / поиска.
Какие факторы следует учитывать при принятии решения о внедрении упрощенной индексации документов (например, как объяснено в ответах на другой вопрос ) или о продолжении использования SQL в этих ситуациях?