2012-10-01 26 views
0

我有MySQL和狮身人面像安装和LNMP服务器上正常工作。现在我想将Sphinx子查询集成到现有的MySQL查询中。混合的MySQL和狮身人面像查询

例子:

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

这可能吗?如果不是的话,我应该单独做狮身人面像,然后在MySQL查询中使用WHERE IN,否则这会否让我从狮身人面像获得额外的效率?

回答

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索引。

0

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

Integrating Sphinx to MySQL

从读这篇文章,它看起来像狮身人面像和MySQL都不如集成为我所希望的。他们需要在不同的连接上使用,所以你不能合并查询。哦...

+0

这是在谈论SphinxQL。 SphinxSE **将允许你像你的例子一样运行查询。 http://sphinxsearch.com/docs/current.html#sphinxse-overview – barryhunter