Non posso farlo. Sphinx (se abilitato per sphinxQL) ti dà solo un server che sembra come uno mysql - cioè usa lo stesso protocollo di comunicazione - principalmente quindi può semplicemente riutilizzare le librerie client mysql, piuttosto che doverne crearne uno nuovo solo per sphinx.
Sono diversi "server". Ti connetti a un server mysql per eseguire i comandi mysql; ti connetti al server sphinx per eseguire i comandi sphinxQL.
L'applicazione dovrà connettersi a ciascun 'server' separatamente. Immagina che sphinx fosse qualcosa come postgres, chiaramente non ti connetti a mysql e ti aspetti di essere in grado di eseguire postgresql.
Tuttavia c'è SphinxSE, che è un falso motore di archiviazione MySQL. Lo installi in mysql e puoi quindi creare una tabella usando questo motore. Quindi esegui query mysql su questa tabella, sotto il cofano ci sono i contatti di un server sphinx in esecuzione. Quindi a mysql sembra una tabella che contiene dati, questo è molto utile perché può quindi "unire" questa tabella di ricerca con la tabella di dati originale per ottenere risultati e dati originali in una query mysql.
L'applicazione non deve quindi connettersi alla sfinge stessa. SphinxSE lo fa per te.
http://sphinxsearch.com/docs/current.html#sphinxse
No. Mantieni i dati originali dove si trovano, usando qualsiasi motore ti piaccia. Sphinx fornisce solo un 'indice' - non memorizza i dati originali*. Non è un database in quanto tale, fornisce solo query veloci con la sua indicizzazione altamente ottimizzata.
Fondamentalmente chiedi a sphinx gli ID univoci dei documenti che corrispondono a una determinata query. Quindi usa quegli ID per cercare i dati. SphinxAPI, sphinxSE e sphinxQL sono solo tre diversi meccanismi per farlo.
No. Una singola istanza sphinx può ospitare molti indici. E un indice può avere molte fonti. Quindi puoi semplicemente creare un indice per tabella. Oppure, se vuoi cercarli principalmente insieme, puoi semplicemente creare un indice amalgamato.
--** Modifica per rispondere alla domanda nei commenti:**
Probabilmente definiresti un indice sfinge per tabella. Quindi avresti bisogno di una coppia sorgente/indice per ogni tabella. (a meno che tu non voglia indicizzare tutte le tabelle in un indice, cosa possibile anche.
Non può leggere le tabelle stesse e creare file di configurazione, devi definire ogni indice individualmente.
No. Non un proxy.
Fondamentalmente sì. Il client si collegherà ad esso nello stesso modo in cui si connette a un server mysql.
No. Impossibile. Collegarsi a mysql-server, per eseguire query mysql. Connetti a ricercato per eseguire query sphinxQL.
Due connessioni, una per server.
Non lo so. Potrebbe essere un problema di firewall.