Шаблон для поиска всей записи БД, а не конкретного поля - PullRequest
2 голосов
/ 07 сентября 2010

Все больше и больше я вижу запросы, которые не только находят подстроку в определенном столбце, но и, по-видимому, выполняют поиск во всех столбцах. Например, в Amazon, где вы можете найти «Арнольд», и он находит и фильм Бегущий человек с Арнольдом Шварценеггаром в главной роли, и игрушку Ганда Арнольд Храп Свинья . Я не знаю, что термин для этого типа поиска (широкий поиск? Глобальный поиск?), И это меня беспокоит. Но то, что я действительно хочу знать, это , каков нормальный шаблон для выполнения этого типа поиска БЫСТРОМ способом.

Очевидный и медленный способ сделать это - найти подстроку «Арнольд» в названии, «Арнольд» в авторе, «Арнольд» в описании и т. Д.

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

Вероятно, существует сотня способов сделать это, некоторые из которых, вероятно, даже не используют базу данных. Но что это за норма?

Ответы [ 2 ]

1 голос
/ 08 сентября 2010

Возможно, они хранят данные не так, как вы ожидаете.

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

1 голос
/ 07 сентября 2010

В прошлом я делал это, сохраняя XML-версию элементов в столбце XML в таблице, а затем выполнял поиск в этом столбце вместо других.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...