@jugger3

Почему не работает запрос?

Не могу понять почему не работает запрос и как это исправить.
$query   = $pdo->prepare("
                   SELECT *, WEIGHT() AS weight
                   FROM {$index} WHERE MATCH (:search)
                   OPTION ranker=proximity_bm25, max_query_time=3, max_matches=300
                ");
                $query->bindValue(':search', $q, \PDO::PARAM_STR);
                $query->execute();
                     
                $rows = $query->fetchAll(\PDO::FETCH_ASSOC);


Ошибка:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''(Компания | *Компания*)') OPTION ranker=prox' at line 2

Как выглядит итоговый запрос:
SELECT *, WEIGHT() AS weight FROM companyIndex WHERE MATCH (Компания | *Компания*) OPTION ranker=proximity_bm25, max_query_time=3, max_matches=300
  • Вопрос задан
  • 100 просмотров
Пригласить эксперта
Ответы на вопрос 3
ManticoreSearch
@ManticoreSearch
SELECT *, WEIGHT() AS weight FROM companyIndex WHERE MATCH (Компания | *Компания*) OPTION ranker=proximity_bm25, max_query_time=3, max_matches=300


Не хватает одинарных кавычек вокруг Компания | *Компания*
Ответ написан
Комментировать
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
https://dev.mysql.com/doc/refman/8.0/en/fulltext-s...
MATCH (col1,col2,...) AGAINST (expr [search_modifier])

Никаких OPTION в MySQL нет.
Ответ написан
Комментировать
opium
@opium
Просто люблю качественно работать
Так вы запрос в сфинкс отправляете или мускул?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы