Mixed MySQL and Sphinx queries

2019-08-23 11:54发布

I have MySQL and Sphinx installed and working properly on a LNMP server. Now I'd like to integrate a Sphinx sub-query into an existing MySQL query.

Example:

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

Is this possible? If not, should I do the Sphinx separately and then use WHERE IN in the MySQL query, or will this kill the extra efficiency I'm getting from Sphinx?

2条回答
一纸荒年 Trace。
2楼-- · 2019-08-23 12:43

It seems I found the answer on another SO question:

Integrating Sphinx to MySQL

From reading this, it looks like Sphinx and MySQL are not as integrated as I had hoped. They need to be used on separate connections, so you can't combine queries. Oh well...

查看更多
Deceive 欺骗
3楼-- · 2019-08-23 12:56

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

Then would be

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

Although

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

is shorter and more concise. And better maintains the order of results.

Where 'sphinx_index' is a SphinxSE table, which points to underlying sphinx index.

查看更多
登录 后发表回答