В mysql boolean match, если нет операторов, OR подразумевается. Если вы хотите И, вам нужно добавить + к каждому ключевому слову.
Таким образом, запрос "word1 word2" равен "word1 OR word2", "+ word1 + word2" равен "word1 AND word2"
Я не хочу, чтобы пользователям приходилось вводить + перед каждым ключевым словом, каковы мои параметры?
Рекомендуемый вариант 1: Есть ли что-то в my.conf, я могу изменить установку значений по умолчанию (я ничего не нашел)
Предлагаемый вариант 2: проанализировать запрос и вручную добавить + к каждому слову. Любой простой код для этого вы можете поделиться?
Проблема с этим заключается в том, что пользователь добавляет "кавычки" или операторы (+ - * < > ) и т.д. он разбивает мой синтаксический код.
Я пошел со вторыми предложениями на моем сайте.
Простой один вкладыш для добавления + перед каждым словом, если вы имеете дело только со словами (не с цитируемыми строками)
$q = implode(' ', array_map(create_function('$a', 'return "+".$a;'), preg_split('`\\s+`', $q))))
или даже более простое регулярное выражение, сделав то же самое:
echo preg_replace('`(\\W|^)\\w`', '\\1+\\2', $q);
если у вас есть не только отдельные слова, но и фразы с фразами для поиска, это должно добавить + перед каждым одиночным некотируемым словом и каждой указанной строкой
echo preg_replace('`(\\s|^)(\\w|"[^"]+")`', '\\1+\\2', $q);
Не уверен, что вы имеете в виду, но вот пример того, как вы можете добавить + перед каждым словом.
$s = "a string with several words in it";
$words = preg_split('/\s+/',$s,null,PREG_SPLIT_NO_EMPTY);
if (count($words)) {
$str = '+' . implode(' +',$words);
}
Невозможно изменить поведение полнотекстового соответствия в логическом режиме без каких-либо операторов, кроме редактирования источника. Вам придется использовать вариант 2 (как показывают другие) в той или иной форме. Просто будьте осторожны, как вы это делаете, если выражение поиска приходит от пользователя.