我正在尝试按事件索引中的类别进行过滤 -
它是多对多的关系,event_category_event_rel
是我的数据透视表。 view_event_search
是一个mysql视图'denormalising'
我的活动数据。它不加入event_category
表。
这是我的配置:
(...)
sql_query = SELECT * FROM view_event_search
WHERE id <= (SELECT max_doc_id FROM search_indexes WHERE `index`='events_primary')
# Attribute config
sql_attr_uint = user_id
sql_attr_timestamp = created_on
sql_attr_multi = UINT categories FROM QUERY; SELECT event_id, event_category_id FROM event_category_event_rel ORDER BY event_id;
(...)
我正在使用PHP并对属性进行过滤,如下所示
$client->SetFilter('categories', array(1));
并收到以下错误:
Search Error: no such filter attribute 'categories'
以下是我认为我理解的内容:
我误会了吗?以及如何按类别过滤? 非常感谢!
答案 0 :(得分:0)
您的配置看起来很好。我怀疑你在更改配置后没有正确重建索引。
使用带有--rotate的索引器是最好的选择。
否则,关闭,搜索,重建索引,然后再次开始搜索。
(另外要检查event_id是view_event_search中的第一列,你可能有这个,但是你写的不清楚,所以只是确定)