Nie mogę tego zrobić. Sphinx (jeśli jest włączony dla sphinxQL) po prostu daje serwer, który wygląda jak mysql - tj. używa tego samego protokołu komunikacyjnego - głównie po to, aby po prostu ponownie użyć bibliotek klienta mysql, zamiast tworzyć nową tylko dla sfinksa.
Są to różne „serwery”. Łączysz się z serwerem mysql, aby uruchamiać polecenia mysql; łączysz się z serwerem sphinx, aby uruchamiać polecenia sphinxQL.
Aplikacja musiałaby łączyć się z każdym 'serwerem' osobno. Wyobraź sobie, że sphinx był czymś w rodzaju postgresa, wyraźnie nie łączysz się z mysql i oczekujesz, że będziesz w stanie uruchomić postgresql.
Istnieje jednak SphinxSE - fałszywy silnik pamięci masowej mysql. Instalujesz go w mysql, a następnie możesz utworzyć tabelę za pomocą tego silnika. Następnie uruchamiasz zapytania mysql na tej tabeli, pod maską znajdują się kontakty z uruchomionym serwerem sfinksowym. Tak więc mysql wygląda jak tabela zawierająca dane, jest to najbardziej przydatne, ponieważ można wtedy „połączyć” tę tabelę wyszukiwania z oryginalną tabelą danych, aby uzyskać wyniki i oryginalne dane w jednym zapytaniu mysql.
Aplikacja nie musi wtedy łączyć się z samym sfinksem. SphinxSE zrobi to za Ciebie.
http://sphinxsearch.com/docs/current.html#sphinxse
Nie. Zachowujesz oryginalne dane tam, gdzie są, używając dowolnego silnika. Sphinx dostarcza tylko „indeks” - nie przechowuje oryginalnych danych*. Nie jest to baza danych jako taka, po prostu zapewnia szybkie wyszukiwanie dzięki wysoce zoptymalizowanemu indeksowaniu.
Zasadniczo pytasz sfinksa o unikalny identyfikator dokumentów pasujących do określonego zapytania. Następnie użyj tych identyfikatorów do wyszukania danych. SphinxAPI, sphinxSE i sphinxQL to tylko trzy różne mechanizmy tego działania.
Nie. Pojedyncza instancja sfinksa może obsługiwać wiele indeksów. A indeks może mieć wiele źródeł. Więc można po prostu utworzyć jeden indeks na tabelę. Lub jeśli chcesz je przeszukiwać głównie razem, możesz po prostu utworzyć jeden połączony indeks.
--** Edytuj, aby odpowiedzieć na pytanie w komentarzach:**
Prawdopodobnie zdefiniowałbyś jeden indeks sfinksa na tabelę. Potrzebujesz więc pary źródło/indeks dla każdej tabeli. (chyba że chcesz indeksować wszystkie tabele w jednym indeksie, co też jest możliwe.
Nie może sam czytać tabel i tworzyć pliku konfiguracyjnego, musisz zdefiniować każdy indeks indywidualnie.
Nie. Nie proxy.
Zasadniczo tak. Klient połączy się z nim w ten sam sposób, w jaki łączy się z serwerem mysql.
Nie. Niemożliwe. Połącz się z serwerem mysql, aby uruchomić zapytania mysql. Połącz się z searchd, aby uruchomić zapytania sphinxQL.
Dwa połączenia, jedno na serwer.
Nie wiem. Może to być problem z zaporą sieciową.