谁能告诉我如何在sphinx search中实现SQL join的功能? 我想索引 table1 中的几列和 table2 中的几列。
表在 MySQL 中。
最佳答案
1° 作为 Barryhunter 的回答
sql_query = SELECT t1.id,t1...., t2.... FROM table1 AS t1 INNER JOIN table2 AS t2 ON ....
如果是一对多则为2°
sql_query = SELECT t1.id,t1...., group_concat(t2.foo) ASt 2_foo, . FROM table1 AS t1 INNER JOIN table2 AS t2 ON .... GROUP BY t1.id
group_concat 有长度限制,但 sphinx 很棒
sql_query = SELECT t1.id,t1....,. FROM table1 AS t1;
sql_joined_field = t2_foo from query;\
SELECT t2.rel_t1_id , t2.foo\
FROM table2` AS t2\
ORDER by t2.rel_t1_id ASC
由于我英文不好,看这篇大概更清楚 http://sphinxsearch.com/docs/current/conf-sql-joined-field.html
sql_joined_field = t2_foo 将添加一个名为 t2_foo 的“可搜索”字段。在此字段中,您检索 t2.foo 内容(类似于组 concat,但由空格分隔)
第一列必须是与你的sql_query中的t1.id匹配的id
按 ID ASC 排序是强制性的
在同样的想法下,您可以将 mva 用于属性中的多个值 http://sphinxsearch.com/docs/current/conf-sql-attr-multi.html
sql_attr_multi = uint tag from query; \
SELECT id, tag FROM tags
关于mysql - 如何在 sphinx 中执行 SQL Join 等效功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32837292/