Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Integracja Sphinxa z MySQL

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ą.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Połączenie bazy danych MySQL z Visual Studio 2013 Preview

  2. Nie można uruchomić MySQL na Macu

  3. WCZYTAJ DANE LOKALNY INFILE php mysql

  4. Funkcja MySQL ATAN2() – Zwróć Arc Tangent z 2 wartości

  5. Grupy zabezpieczeń DB można powiązać tylko z instancjami bazy danych VPC przy użyciu wersji API