0
我使用Sphinx將一些數據編入索引。 我有分類的對象和類別有分層。我的基本表結構如下:如何返回多個有效共享索引的文檔?
Objects
| id | name |
| 1 | ABC |
| 2 | DEF |
...
Categories
| id | name | parent_id |
| 1 | My Category | 0 |
| 2 | A Child | 1 |
| 3 | Another Child | 1 |
...
Object_Categories
| object_id | category_id |
| 1 | 2 |
| 2 | 3 |
...
我的配置目前是:
sql_query = SELECT categories.id, objects.name, parent_id FROM categories \
LEFT JOIN object_categories ON categories.id = object_categories.category_id \
LEFT JOIN objects ON objects.id = object_categories.object_id
sql_attr_uint = parent_id
這將返回包含符合我的搜索條件的對象的任何類別的類別ID,但我需要作出調整以獲得該類別中的對象或其任何子女。
顯然,我可以將這個查詢與另一個從匹配的類別父節點獲取ID的查詢聯合起來,等等(它可以達到4或5級深度),但是這看起來效率非常低。有沒有辦法在第一個字段中返回多個文檔ID,或避免重複不必要的索引?
我是一個獅身人面像noob,所以我不知道如何處理這個問題。