Нещодавно я опинився, що розбирався над обмеженнями механізмів індексації документів. Я розробляв невеликий веб-сайт, який потребував досить надійних пошукових можливостей, але через їхні апаратні обмеження я не міг розгорнути рішення, пов'язане з люценом (наприклад, Solr або ElasticSearch, як я зазвичай), щоб вирішити цю потребу.
І навіть тоді, коли мені потрібно було обслуговувати деякі складні дані та обчислення, що вимагали великої кількості баз даних, мені не потрібно було обробляти понад 250 000 потенційних записів. Розгортання цілого екземпляра Solr або ES просто для вирішення цього питання здавалося марним.
Після того, як я подумав про це, це здається досить великою проблемою. Більшість людей обробляють вимоги пошуку виключно з SQL. Вони просто виконують запити SQL для своїх даних, і це все. Їх пошукові можливості також виявляються жахливими.
Пошук у повнотекстовому підстановковому пошуку в деяких системах може бути дуже повільним у деяких системах (зокрема спільних хостах) і перервати вашу базу даних, особливо якщо у вас складні запити та багато приєднань.
Ви в кінцевому підсумку робите кілька запитів за одним запитом користувача. Ви можете обійти це за допомогою все складніших запитів, але дивіться попередній пункт.
Брак функцій, як правило, присутній у повнотекстових двигунах.
Бази даних мали таку саму проблему, що потрібно розгорнути як сервер, і тоді з'явився SQLite, і ми раптом змогли розгорнути базу даних, яка міститься в одному файлі. Мій Googling нічого не дав - дивуйтеся, чи існує щось подібне для повнотекстової індексації / пошуку.
Які чинники слід враховувати, приймаючи рішення про те, чи застосовувати легку індексацію документів (наприклад, як це пояснено у відповідях на інше запитання ) чи продовжувати використовувати SQL у цих ситуаціях?