1

这是我的数据库的结构,包括产品和类别

-- 产品表

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

-- Product2Category 表

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 功能。

4

1 回答 1

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

多个电话是'AND'ed :)


顺便说一句,可以简化您的 MVA 查询...

sql_attr_multi = uint prod_cat from query; \
    select product_id, category_id from product2category
于 2013-03-14T19:58:47.930 回答