Имам инсталиран 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
Това възможно ли е? Ако не, трябва ли да направя Сфинкса отделно и след това да използвам WHERE IN
в MySQL заявката, или това ще убие допълнителната ефективност, която получавам от Сфинкс?
Отговори:
1 за отговор № 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, която сочи към основния индекс на сфинкса.
0 за отговор № 2
Изглежда, че намерих отговора на друг въпрос със SO:
От това четене, изглежда, че Sphinx и MySQL не са толкова интегрирани, колкото се надявах. Те трябва да се използват на отделни връзки, така че не можете да комбинирате заявки.