Когда у тебя есть только молоток, все выглядит как гвоздь. Поиск — это безусловно мой молот, поэтому мне легко все оформить как задачу поиска. В конце концов, разве проблема не подразумевает поиск решения?

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

Системы рекомендаций часто используют поисковые системы под капотом, особенно для рекомендаций на основе элементов, где элементом является запрос.

Ответ на вопрос часто реализуется, по крайней мере частично, с помощью поиска прохода, то есть… поиска.

Кроме того, есть организации, которые используют поисковую систему, такую ​​как Elastic, в качестве основного хранилища данных — не то чтобы я это рекомендовал!

Но вы видите, как легко представить если не все проблемы, то, по крайней мере, все проблемы с доступом к информации как проблемы поиска.

Я хотел бы ограничить область поиска, хотя бы из личного интереса. Ведь если все искать, то ничего не искать. Кроме того, не все проблемы доступа к информации являются проблемами поиска. Попробую нарисовать две линии, ограничивающие снизу и сверху то, что не поиск.

Хеш-таблицы и бинарные деревья не являются поисковыми системами

Для тех из вас, кто не помнит свой вводный класс алгоритмов — или никогда его не посещал — хэш-таблица — это стандартная реализация словарного (или ассоциативного массива) абстрактного типа данных.

Словарь позволяет хранить пары ключ-значение и извлекать их по ключу. Хеш-таблицы эффективно реализуют обе операции. Если ваши ключи упорядочены и вы хотите, чтобы некоторые дополнительные операции, такие как перечисление ключей по порядку или получение ключа, ближайшего к ключу, отсутствующему в словаре, были эффективными, то вы можете использовать своего рода бинарное дерево или пропустить список.

Большинство разработчиков полагаются на нативную реализацию словаря своего языка и не тратят время на изучение деталей, за исключением собеседований.

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

Я бы сказал, что поисковая система должна иметь некоторое понятие «максимальное усилие», а не точный поиск. Большая часть сложности поисковой системы связана с решениями, принимаемыми при индексировании, поиске, оценке и ранжировании для оптимизации для удовлетворения поисковых запросов и бизнес-показателей.

Это правда, что вам нужно выбрать начальную емкость и коэффициенты перезагрузки для хеш-таблицы — и хеш-функцию! Но если все ваши компромиссы чисто вычислительные, это, вероятно, не проблема поиска.

Общий искусственный интеллект (AGI) — это больше, чем просто поиск

Теперь давайте посмотрим на другой конец спектра.

Вопрос-ответ напоминает поисковую задачу. И часто это так. Если ваш вопрос звучит так: Где ближайший суши-ресторан, открытый прямо сейчас?, то это явно проблема с поиском. В частности, это проблема понимания запроса, чтобы представить намерение как что-то вроде Получить рестораны, где категория равна суши, а текущее время находится между временем открытия и временем закрытия, а затем отсортировать по расстоянию от моего местоположения.

Вы также можете мучиться из-за компромиссов, например, включать ли рестораны, которые подают суши, но не специализируются на этом, исключать рестораны, закрывающиеся через 5 минут, включать супермаркеты в качестве ресторанов и т. д. Вы делаете все возможное, чтобы выйти за рамки строго вычислительные компромиссы.

Но допустим, вы хотите знать, какие суши-рестораны были основаны детьми иммигрантов, приехавших в США через остров Эллис. Это не проблема поиска, это проблема исследования! Чтобы ответить на него, вам нужно будет найти подходящую коллекцию хранилищ данных — без гарантии того, что вся необходимая информация существует в доступных записях, — а затем составить план синтеза информации из них. Я бы сказал присоединиться к ним, но это даже не говорит о сложности проблемы.

На мой взгляд, такого рода задачи слишком сложны, чтобы считаться задачей поиска. Действительно, это требует решения нескольких поисковых задач. Но настоящая проблема заключается в том, чтобы придумать план более высокого порядка. Если вы можете сделать это за пределами тривиальной области, я бы сказал, что вы достигли искусственного общего интеллекта (AGI).

Не волнуйтесь, между строк еще тонны!

Итак, не все проблемы являются проблемами поиска. Не все проблемы с доступом к информации являются проблемами поиска. Но их тонны. Знание границ помогает вам выбирать решения и консультантов. Так что, если вы работаете над поиском, не бойтесь. Еще многое предстоит сделать.