我已在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获得的额外效率?
答案 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)
我似乎在另一个问题上找到了答案:
从阅读本文来看,看起来Sphinx和MySQL并没有像我希望的那样集成。它们需要在单独的连接上使用,因此您无法组合查询。哦,好吧......