Расчет релевантности с помощью Match… Against в запросах JOIN (MySQL)

0

Я пытаюсь получить релевантные результаты поиска, используя следующий запрос JOIN:

SELECT 
    'products'.'id',
    'brands'.'name' AS 'brand',
    'products'.'name' AS 'productname',
    MATCH ('brands'.'name') AGAINST ('somebrand someproduct' ) AS brandname_relevance
FROM
    'brands'
        INNER JOIN
    'products' ON 'products'.'brand_id' = 'brands'.'id'
WHERE
    MATCH ('products'.'name') AGAINST ('somebrand someproduct' ) AS /* AS is highlighted as 'not valid input at this point' */ product_relevance
ORDER BY (brandname_relevance + product_relevance) DESC

Однако, как отмечается в коде, "AS" выделяется как недопустимый в этом контексте MySQL Workbench. Запрос завершается с ошибкой.

Двигатель в обеих таблицах InnoDB, однако MySQL сервер версии выше 5.6 и полнотекстовый индекс включен как для brands.name и products.name. Пожалуйста, объясните, в чем проблема.

Теги:
join
relevance

1 ответ

1
Лучший ответ

Это в предложении where - переместите его с другими полями в выбранном вами.

SELECT 
    'products'.'id',
    'brands'.'name' AS 'brand',
    'products'.'name' AS 'productname',
    MATCH ('brands'.'name') AGAINST ('somebrand someproduct' ) AS brandname_relevance,
    MATCH ('products'.'name') AGAINST ('somebrand someproduct' ) AS product_relevance
FROM
    'brands'
        INNER JOIN
    'products' ON 'products'.'brand_id' = 'brands'.'id'
ORDER BY (brandname_relevance + product_relevance) DESC
  • 0
    Изумительно, высоко ценится!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню