В настоящее время я изучаю использование индексов FULLTEXT в MySQL для поиска в веб-сайте.Индексы FullText в нескольких столбцах переменных
В принципе, пользователь может перейти на расширенную страницу поиска и выбрать 1 или более столбцов для поиска, например. они могут искать заголовок, описание и комментарии или только один столбец или смесь из трех, и когда они выполняют поиск, поиск этих выбранных столбцов выполняется по ключевым словам.
Я создал 1 индекс для заголовка, 1 индекса для описания и 1 индекс для комментариев, а затем попытался выполнить следующий запрос:
SELECT * FROM support_calls WHERE MATCH(Title, Description) AGAINST('+these, +are, +some, +keywords')
Я получил ошибку от MySQL говорит, что MATCH не совпадали с полными текстовыми индексами, и я обнаружил, что мне нужно создать индекс, который включал Title и Description вместе вместо того, чтобы иметь их в отдельных индексах.
Это добавит некоторую сложность, если это так, поскольку мне нужно будет создать индекс для каждого отдельного варианта того, какие столбцы пользователь выбирает. Я собираюсь сделать это сразу или есть лучшее решение.
Спасибо за любую помощь, которую вы можете предоставить.
AFAIK, это ограничение MySQL, которое вы не можете переопределить. В зависимости от ваших потребностей вы можете «MATCH (Title) AGAINST (« + эти, +, + некоторые, + ключевые слова ») ИЛИ MATCH (Описание) AGAINST (« + эти, + есть, + некоторые, + ключевые слова » ') 'и использовать ранги для сортировки или дальнейшей фильтрации. –
Это, похоже, работает из теста, который я сделал, я немного обеспокоен тем, что он может стать довольно медленным, но пока что так хорошо. Не могли бы вы ответить на этот вопрос, и я приму это. – Boardy
Я далек от того, чтобы быть экспертом в полном тексте, и я не хочу публиковать потенциально ошибочный или простой неправильный ответ. Например, я просто полагаю, что требования к индексу различны в зависимости от механизма хранения и логического/естественного режима [ref] (https://dev.mysql.com/doc/refman/5.6/en/fulltext-boolean.html) , –