Filter 多值属性筛选值的定义与条件

Filter 多值属性筛选值的定义与条件,filter,sphinx,multivalue,Filter,Sphinx,Multivalue,以下是我的产品和类别数据库的结构 --产品表 CREATE TABLE `product_table` ( `product_id` int(11) NOT NULL, `product_title` text, `product_description` text ); --Product2类别表 CREATE TABLE `product2category_table` ( `product_id` int(11) NOT NULL, `category_id` int(11) NOT N

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

--产品表

CREATE TABLE `product_table` (
`product_id` int(11) NOT NULL,
`product_title` text,
`product_description` text
);
--Product2类别表

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进行查询,在其描述中找到所有属于IDS12和IDS20类别的电子产品。通常,$cl->setfilter('prod_cat',array(12,20)甚至会返回属于其中任何一个类别的产品。我知道如果我将一个产品的所有类别组合在一起并进行全文搜索,这非常简单。但是有没有办法处理MVA功能

$cl->setfilter('prod_cat',array(12));
$cl->setfilter('prod_cat',array(20));
多个呼叫是“和”:


另一方面,可以简化MVA查询

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

哇…现在我读了几乎所有的文档,但找不到…太好了…谢谢…对斯芬克斯的文档制作方式相当失望…我应该如何找到这种东西…继续在stackoverflow上发布…公平地说,文档中说“在这次通话中,在现有的过滤器列表中添加了额外的新过滤器。”是的,我很糟糕……现在我正试图按类别对查询结果进行分组。MVA很好地做到了这一点,但只使用整数值,即它们的ID。对于类别名称也可以这样做吗?或者我必须编写一个不同的查询来检索与其ID对应的类别名称。是的,只需编写一个单独的查询。这是一个微不足道的问题。