混合MySQL和Sphinx查询

时间:2012-10-01 00:32:06

标签: mysql subquery sphinx

我已在MySQL和Sphinx上安装并在LNMP服务器上正常运行。现在我想将Sphinx子查询集成到现有的MySQL查询中。

示例:

SELECT * FROM mysql_table
JOIN (SELECT id FROM sphinx_index MATCH ('keyword')) AS match_table
ON match_table.id = mysql_table.id

这可能吗?如果没有,我应该单独执行Sphinx,然后在MySQL查询中使用WHERE IN,否则会破坏我从Sphinx获得的额外效率?

2 个答案:

答案 0 :(得分:1)

使用SphinxSE http://sphinxsearch.com/docs/current.html#sphinxse-overview

然后就是

SELECT * FROM mysql_table
JOIN (SELECT id FROM sphinx_index WHERE query='keyword') AS match_table
ON match_table.id = mysql_table.id

虽然

SELECT * FROM sphinx_index INNER JOIN mysql_table USING (id) WHERE query='keyword'

更短更简洁。 可以更好地维护结果的顺序。

其中'sphinx_index'是一个SphinxSE表,指向底层的sphinx索引。

答案 1 :(得分:0)

我似乎在另一个问题上找到了答案:

Integrating Sphinx to MySQL

从阅读本文来看,看起来Sphinx和MySQL并没有像我希望的那样集成。它们需要在单独的连接上使用,因此您无法组合查询。哦,好吧......