并且关于多值属性过滤值的条件

时间:2013-03-14 16:36:12

标签: filter sphinx multivalue

以下是包含产品和类别的数据库结构

- 产品表

CREATE TABLE `product_table` (
`product_id` int(11) NOT NULL,
`product_title` text,
`product_description` text
);

- Product2ategory Table

CREATE TABLE `product2category_table` (
`product_id` int(11) NOT NULL,
`category_id` int(11) NOT NULL
);

我正在类别

上创建多值属性
sql_attr_multi = uint prod_cat from query; \
select p.product_id, c.category_id from product as p, product2category as c
            where c.product_id = p.product_id;

产品和类别之间的关系是多对多的。例如,名为lenovo的产品可属于以下类别:

category_id category_title
    12           sturdy
    20           laptop

问题:我应该如何使用php-sphinx api进行查询,找到属于ID 12和20类别的所有带有电子产品的产品。通常是$ cl-> setfilter('prod_cat',array(12, 20)甚至会返回属于任何一个类别的产品。我知道如果我对产品的所有类别进行连接并进行全文搜索,这很简单。但是有没有办法处理MVA功能。

1 个答案:

答案 0 :(得分:2)

$cl->setfilter('prod_cat',array(12));
$cl->setfilter('prod_cat',array(20));

多次通话都是' AND'''


顺便说一下,可以简化你的MVA查询...

sql_attr_multi = uint prod_cat from query; \
    select product_id, category_id from product2category