/ / Mieszane zapytania MySQL i Sphinx - mysql, podzapytanie, sfinks

Mieszane zapytania MySQL i Sphinx - mysql, podzapytanie, sfinks

Mam MySQL i Sphinx zainstalowane i działające poprawnie na serwerze LNMP. Teraz chciałbym zintegrować pod-zapytanie Sphinx z istniejącą kwerendą MySQL.

Przykład:

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

czy to możliwe? Jeśli nie, powinienem wykonać Sphinx osobno, a następnie użyć WHERE IN w zapytaniu MySQL, czy może to zabije dodatkową efektywność, którą otrzymuję od Sphinx?

Odpowiedzi:

1 dla odpowiedzi № 1

Użyj SphinxSE http://sphinxsearch.com/docs/current.html#sphinxse-overview

Wtedy byłoby

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

Mimo że

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

jest krótszy i bardziej zwięzły. I lepiej utrzymuje kolejność wyników.

Gdzie "sphinx_index" to tabela SphinxSE, która wskazuje na bazowy indeks indeksu Sphinx.


0 dla odpowiedzi nr 2

Wygląda na to, że znalazłem odpowiedź na inne pytanie:

Integracja Sphinx z MySQL

Odczytując to, wygląda na to, że Sphinx i MySQL nie są tak zintegrowane, jak się spodziewałem. Muszą być używane na oddzielnych połączeniach, więc nie można łączyć zapytań.