我想按類別在我的活動指數來過濾篩選 - 它是一個多對多的關係和event_category_event_rel
是我的數據透視表。 view_event_search
是一個mysql視圖'denormalising' 我的事件數據。它不加入event_category
表。獅身人面像 - 不能按類別使用sql_attr_multi
這是我的配置:
(...)
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'
這裏是什麼我想我明白了:
- 在UINT類別FROM QUERY; '類別'是屬性名稱。
- 和sql查詢部分必須返回索引0處的文檔ID和索引1處的過濾器值 。Sphinx然後匹配返回到sql_query文檔ID的文檔ID。如果MVA中存在重複的文檔ID(event_id),則值(event_category_id)被「附加」到該文檔的值。
我誤會了嗎?以及如何按類別過濾? 非常感謝!
我的問題是錯別字的許多其他地方我的系統:/每個人都有幾天,他們覺得自己像一個noob我想...很高興知道,多屬性的工作原理就像我從一開始就認爲的 - 超級有用和(現在)直觀 - 再次感謝斯芬克斯隊! –