使用不同的表格列进行狮身人面像搜索权重排序

时间:2017-02-18 22:18:14

标签: mysql sorting sphinx

我希望根据另一个表中的字段对结果进行排序/加权,而不是sphinx中的默认排序。我的架构如下所示:

node {
  id
  weight
}

node_text {
  id
  node_id
  text
}

(注意:每个节点只有一个node_text)

我想索引node_text,但能够返回node.weight排序的sphinx结果。我假设我需要这样的东西:

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 个答案:

答案 0 :(得分: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查询:)