如何在sphinx中执行SQL Join等效功能?

时间:2015-09-29 06:41:33

标签: mysql join full-text-search sphinx

有谁能告诉我如何在 sphinx搜索中实现SQL连接的功能? 我想索引table1中的几列和table2中的少数列。

表格在MySQL中。

2 个答案:

答案 0 :(得分:0)

您可以在sql_query中使用联接,它只是一个标准的MySQL查询,索引器运行并为输出编制索引。 MySQL服务器只需要运行它。

sql_query = SELECT id,t.name,o.test FROM table1 t INNER JOIN other o USING (id) 

答案 1 :(得分:0)

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有长度限制但是狮身人面像非常棒

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

按照ASC的顺序是强制性的

在同一个想法中,您可以在属性中使用mva作为多个值 http://sphinxsearch.com/docs/current/conf-sql-attr-multi.html

sql_attr_multi = uint tag from query; \
SELECT id, tag FROM tags