2015-06-24 2 views
0

Мне нужен запрос для поиска ключевого слова с помощью опции множественного И/ИЛИ. Это поле помечено как Полный текст в mysql.Множественный вариант AND/OR с полным текстом Логический поиск

Первый ключевой слот будет: "Keyword1", Второй - "Keyword2", а третий "Keyword3".

Мне нужно включить все ключевые слова как через одно текстовое поле. Поэтому я отправлю как "Keyword1" AND "Keyword" AND "Keyword". В этом случае нам нужно получить результаты на основе всех ключевых слов. Некоторые другие случаи,

1) "Keyword1" AND "Keyword2" OR "Keyword3" 
2) "Keyword1" OR "Keyword2" AND "Keyword3" 
3) "Keyword1" AND "Keyword2" NOT "Keyword3" 
4) "Keyword1" NOT "Keyword2" 

Это может быть 3 ключевых слов или 2 ключевых слов.

Я использую следующий запрос для поиска по одному ключевому слову. Сначала я получу значение в переменной PHP, после чего я передам это mysql.

SELECT * FROM TABLE WHERE MATCH (pd_description, pd_awards, pd_experience, pd_qualification) AGAINST ('keyword1' IN BOOLEAN MODE) 

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

if (strpos($search_text,' AND ') !== false) { 
     $explode_keyword  = explode(' AND ',$search_text); 
     $keyword_left   = $explode_keyword[0]; 
     $keyword_right  = $explode_keyword[1]; 
     $string_match   = '"'.$keyword_left.'"'; 
     $string_match_right   = '"'.$keyword_right.'"'; 
} 

Mysql запрос я использовал,

SELECT * FROM TABLE WHERE MATCH (pd_description, pd_awards, pd_experience, pd_qualification) AGAINST ('".$string_match."' IN BOOLEAN MODE) AND MATCH (pd_description, pd_awards, pd_experience, pd_qualification) AGAINST ('".$string_match_right."' IN BOOLEAN MODE). 

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

ответ

0

В соответствии с руководством MySQL 5.5 вы будете использовать + для AND, для NOT и OR не получите оператора. Это отличный пример, если вы посмотрите ссылку ниже.

MySQL 5.5 Manual-Boolean Full Text Searches

Смежные вопросы