Sphinx搜索产品参数表(产品属性)

时间:2014-05-06 10:53:47

标签: sql-server search sphinx

美好的一天!

我的狮身人面像搜索有些麻烦。我想搜索产品参数,但不能理解我该怎么做。

例如。

产品表

product_id INT
product_name STRING

产品参数表

param_id INT
product_id INT
param_name STRING
param_value STRING

这个数据例如:

产品

1 TV
2 Player

PARAMS

1 1 Size Big
2 1 Color Red
3 1 Weight 3.0
4 2 Size Small
5 2 Color Brown
6 2 Length 20

我想搜索尺寸小颜色为红色

的所有产品

1 个答案:

答案 0 :(得分:1)

有许多不同的方法。也许最简单的一个:

sql_query = SELECT product_id, product_name, \
   GROUP_CONCAT(CONCAT(param_name,'_',param_value)) AS params \
   FROM products LEFT JOIN params USING (product_id) \
   GROUP BY product_id \
   ORDER BY NULL

(多数民众赞成mysql查询,但sql-server不能那么多不同)

然后可以执行(SphinxQL)查询,如

SELECT * FROM index WHERE MATCH('keyword @params (Size_Small | Color_Red)');

(如果你的任何一个参数有空格,可能需要使用REPLACE更改为undertores,将它们保持为一个单词 - 或使用"短语语法")