2017-02-18 40 views
0

而不是在sphinx默認排序,我想排序/權重基於另一個表中的字段的結果。我的模式是這樣的:使用不同的表列獅身人面像搜索權重排序

node { 
    id 
    weight 
} 

node_text { 
    id 
    node_id 
    text 
} 

(注:只有每個節點一個NODE_TEXT)

我想指數node_text,但能夠回到由node.weight下令獅身人面像的結果。我假設我需要的是這樣的:

sql_query = SELECT node_id, text from node_text 

sql_joined_field = weight from query; SELECT id, weight FROM node ORDER BY id ASC 

這是搜索匹配ORDER BY node.weight DESC正確的方法是什麼?我希望能夠運行一個查詢類似如下:

mysql> SELECT * FROM nodetest1 WHERE MATCH('foobar') ORDER BY weight DESC; SHOW META; 

回答

1

sql_joined_field,使得,你需要weight被存儲在一個屬性。最簡單的將是一個簡單的加入...

sql_query = select node_id, text, weight from node_text inner join node using (node_id=node.id) 
sql_uint_attr = weight 

那麼就應該爲你SphinxQL查詢工作:)