我希望在产品数据库的多行上执行自然语言搜索。我使用自然语言来获得相关结果。客户明确要求“Google类型搜索”
我遇到的问题是,许多产品都包含其名称中的分数。例如1/2英寸钻头。
不幸的是,MySQL将“/”字符视为单词分隔符,因此“3/4”在匹配条件中被视为“3”“4”,这与它根本不存在的情况相同搜索是关注的。
我已经看到其他系统能够使这项工作,但我不知所措。
非常感谢任何帮助。
请求时附加的示例查询:
SET @matching := "1/4 jobber drill";
SELECT SQL_CALC_FOUND_ROWS *, MATCH(
parent_product_category,
second_level_product_category,
third_level_product_category,
fourth_level_product_category,
fifth_level_product_category,
order_no,
short_product_title,
long_product_title,
manufacturer,
brand_name) AGAINST(@matching IN NATURAL LANGUAGE MODE) AS score
FROM sb_products WHERE is_promo = "0" AND MATCH(
parent_product_category,
second_level_product_category,
third_level_product_category,
fourth_level_product_category,
fifth_level_product_category,
order_no,
short_product_title,
long_product_title,
manufacturer,
brand_name) AGAINST(@matching IN NATURAL LANGUAGE MODE) ORDER BY score DESC LIMIT 0, 20;
SELECT FOUND_ROWS() as num_rows;