Я использую логический полнотекстовый поиск MySQL для своей поисковой системы: https://dev.mysql.com/doc/refman/5.6/en/fulltext-boolean.html.
Предположим, у меня есть таблица со следующими столбцами:
PRODUCTS
--------
id (PK)
color_id (FK to COLORS table)
name
description
При задании поискового запроса я хочу выполнить поиск по столбцам name
и description
таблицы продукта, а также по цвету name . Название цвета находится в отдельной таблице.
Должен ли я создать новый столбец в таблице продукта и поместить туда весь текст, который я хочу проиндексировать? Например, я добавляю столбец products
. full_text_index
и выкидываю конкатенацию name
, description
и имя цвета в этом столбце? Затем выполнить полнотекстовый поиск по этому столбцу?
ОБНОВЛЕНИЕ: Или вместо столбца в существующей таблице, возможно, создайте новую таблицу, содержащую весь текст, который должен использоваться для полнотекстового поиска. Эта таблица может иметь FK для таблицы products
.