Я создаю поиск сайта, который использует полнотекстовый поиск. Сам поиск отлично работает, это не моя проблема. Я строю вместе предоставленные пользователем ключевые слова (MATCH... AGAINST...) с AND, чтобы несколько слов еще больше сузили результаты. Теперь я знаю, что некоторые стоп-слова не индексируются, и это прекрасно со мной, я не хочу их использовать в качестве критериев отбора. Но, если в наборе ключевых слов (от пользователя) предоставляется секундомер, он убивает все результаты (как и ожидалось), даже если слово действительно находится в определенном текстовом блоке.
Мой вопрос: есть ли способ проверить, является ли какое-то слово стоп-словом во время запроса? Мое предпочтительное решение состояло бы в том, чтобы исключить соответствующее слово из критериев поиска (меня не волнует, может ли пользователь сузить результаты по слову "нет", я просто не хочу, чтобы MySQL возвращал пустой набор результатов, потому что пользователь при условии, что он не существует в результатах). Или, мне просто нужно будет очистить список заметок? Большое спасибо за любую помощь.
изменить ---- Извините, но на самом деле нет фрагментов кода для этого. Код работает нормально, фактически точно так, как ожидалось. Это больше логическая проблема, с которой я имею дело. Но в качестве примера, в порядке объяснения:
позволяет сказать, что есть три записи, которые включают слова (но не ограничиваются ими)
1: яблоко, апельсин, манго, банан 2: виноград, апельсин, ананас, манго 3: картофель, манго, дыня, кейра рыцарь
Если слово поиска, введенное пользователем, является манго, все результаты возвращаются правильно. Если слова оранжевые и манго, результаты 1 и 2 возвращаются (правильно). Теперь скажем, банан - это стоп-слово (это не... но пусть оно и есть), если поиск выполняется для оранжевого, мангового и бананового, результаты не возвращаются (потому что банан не находится в полнотекстовом индексе).
То, что я ищу, - это если кто-то еще столкнулся с этой проблемой и имеет способ обойти это. Сортировка:
if 'banana' NOT STOP WORD match 'banana' against `words`. (OBVIOUSLY not real code).
Или... мне просто нужно будет отбросить список закладок...