我们有一张包含产品信息的大表格。几乎所有时间我们需要查找包含特定词汇的产品名称,但不幸的是这些查询要花费很长时间才能运行。
例如:查找所有名称包含单词“steel”和“102”(不必紧挨着,所以像“Ninja steel iron 102 x”这样的产品也是匹配项,就像“Dragon steel 102 b”一样)的产品。
目前我们是这样做的:
有更快的方法吗?
我们只匹配单词,因此我想知道是否有办法帮助我们(即在上面的示例中,产品是匹配项,但“Samurai swordsteel 102 v”不是匹配项,因为“steel”不独立存在)。
我的想法是制作一个带有产品名称单词的辅助表,然后使用该表格获取匹配产品的ID。
即:一个类似于[id,word,productid]的表,所以我们得到例如:
例如:查找所有名称包含单词“steel”和“102”(不必紧挨着,所以像“Ninja steel iron 102 x”这样的产品也是匹配项,就像“Dragon steel 102 b”一样)的产品。
目前我们是这样做的:
SELECT columns FROM products WHERE name LIKE '%WORD1%' AND name LIKE '%WORD2%'
(通常有2-4个like词,但理论上可以是7-8个或更多)。有更快的方法吗?
我们只匹配单词,因此我想知道是否有办法帮助我们(即在上面的示例中,产品是匹配项,但“Samurai swordsteel 102 v”不是匹配项,因为“steel”不独立存在)。
我的想法是制作一个带有产品名称单词的辅助表,然后使用该表格获取匹配产品的ID。
即:一个类似于[id,word,productid]的表,所以我们得到例如:
1, samurai, 3
2, swordsteel, 3
3, 102, 3
4, v, 3
请问MySQL中是否有内置的方法来实现这个功能,这样我就不必自己实现并维护两个表了。
谢谢!