sql >> Base de Datos >  >> RDS >> Mysql

Integrando Sphinx a MySQL

No puedo hacer eso. Sphinx (cuando está habilitado para sphinxQL) solo le brinda un servidor que parece como uno mysql, es decir, utiliza el mismo protocolo de comunicaciones, principalmente para que pueda reutilizar las bibliotecas cliente mysql, en lugar de tener que crear una nueva solo para sphinx.

Son diferentes 'servidores'. Te conectas a un servidor mysql para ejecutar comandos mysql; se conecta al servidor sphinx para ejecutar comandos sphinxQL.

La aplicación tendría que conectarse a cada 'servidor' por separado. Solo imagine que sphinx era algo así como postgres, claramente no se conecta a mysql y espera poder ejecutar postgresql.

Sin embargo, existe SphinxSE, que es un motor de almacenamiento mysql falso. Lo instala en mysql y luego puede crear una tabla usando este motor. Luego ejecuta consultas mysql en esta tabla, debajo del capó hay contactos con un servidor sphinx en ejecución. Entonces, para mysql parece una tabla que contiene datos, esto es muy útil porque luego puede 'unir' esta tabla de búsqueda con la tabla de datos original para obtener resultados y los datos originales en una consulta de mysql.

Entonces, la aplicación no tiene que conectarse a Sphinx. SphinxSE lo hace por usted.

http://sphinxsearch.com/docs/current.html#sphinxse

No. Mantienes los datos originales donde están, usando el motor que quieras. Sphinx solo proporciona un "índice", no almacena los datos originales*. No es una base de datos como tal, solo proporciona consultas rápidas con su indexación altamente optimizada.

Básicamente, le pide a Sphinx las identificaciones únicas de los documentos que coinciden con una determinada consulta. Luego use esas identificaciones para buscar los datos. SphinxAPI, sphinxSE y sphinxQL son solo tres mecanismos diferentes para hacerlo.

No. Una sola instancia de sphinx puede albergar muchos índices. Y un índice puede tener muchas fuentes. Entonces solo puede crear un índice por tabla. O si principalmente desea buscarlos juntos, puede crear un índice combinado.

--** Editar para responder a la pregunta en los comentarios:**

Probablemente definiría un índice de esfinge por tabla. Por lo tanto, necesitaría un par fuente/índice para cada tabla. (a menos que desee indexar todas las tablas en un índice, lo cual también es posible.

No puede leer las tablas en sí mismo y crear un archivo de configuración, debe definir cada índice individualmente.

No. No es un proxy.

Básicamente sí. El cliente se conectará a él de la misma manera que se conecta a un servidor mysql.

No imposible. Conéctese al servidor mysql para ejecutar consultas mysql. Conéctese a searchd para ejecutar consultas sphinxQL.

Dos conexiones, una por servidor.

no sé Puede ser un problema de firewall.