2011-07-04 12 views
18

estoy usando TS versión 2.0.5, 3.0.9 y carriles mysql2 0.2.11pensamiento esfinge desconocido tipo 'mysql'; saltarse

Al intentar crear mis índices, usando TS rastrillo: índice, me sale el siguiente error:

ERROR: source 'technical_core_0': unknown type 'mysql'; skipping. 

mi development.sphinx.conf contiene:

source technical_core_0 
{ 
    type = mysql 
    sql_host = localhost 
    sql_user = root 
    sql_pass = 
    sql_db = ps_development 
    sql_sock = /tmp/mysql.sock 
    sql_query_pre = SET NAMES utf8 
    sql_query_pre = SET TIME_ZONE = '+0:00' 
    sql_query = SELECT SQL_NO_CACHE `technicals`.`id` * CAST(1 AS SIGNED) + 0 AS `id` , `orders`.`name` AS `author`, `technicals`.`id` AS `sphinx_internal_id`, 0 AS `sphinx_deleted`, 488243725 AS `class_crc`, IFNULL(`orders`.`name`, '') AS `author_sort`, `technicals`.`order_id` AS `order_id`, UNIX_TIMESTAMP(`technicals`.`created_at`) AS `created_at`, UNIX_TIMESTAMP(`technicals`.`updated_at`) AS `updated_at` FROM `technicals` LEFT OUTER JOIN `orders` ON `orders`.`id` = `technicals`.`order_id` WHERE (`technicals`.`id` >= $start AND `technicals`.`id` <= $end) GROUP BY `technicals`.`id`, , `orders`.`name`, `technicals`.`id`, `orders`.`name`, `technicals`.`order_id`, `technicals`.`created_at`, `technicals`.`updated_at` ORDER BY NULL 
    sql_query_range = SELECT IFNULL(MIN(`id`), 1), IFNULL(MAX(`id`), 1) FROM `technicals` 
    sql_attr_uint = sphinx_internal_id 
    sql_attr_uint = sphinx_deleted 
    sql_attr_uint = class_crc 
    sql_attr_uint = order_id 
    sql_attr_timestamp = created_at 
    sql_attr_timestamp = updated_at 
    sql_attr_str2ordinal = author_sort 
    sql_query_info = SELECT * FROM `technicals` WHERE `id` = (($id - 0)/1) 
} 

que es un poco extraño ya que mi archivo contiene database.yml mysql2 y una contraseña de root.

¿Puedes ayudarme a superar esta etapa? Intenté también crear un archivo sphinx.yml con:

development: 
adapter: mysql2 

Pero esto también falla.

- ACTUALIZACIÓN -

he añadido esto en el archivo de inicializadores de desarrollo:

ThinkingSphinx.database_adapter = :mysql2 

Lo que posibilita un error acerca de MySQL solamente siendo apoyado.

Respuesta

14

Al compilar Sphinx, debe especificar el indicador --with-mysql.

$ ./configure --with-mysql 
$ make 
$ sudo make install 

Puede que necesite especificar la ubicación de los archivos de inclusión de su biblioteca MySQL. Por ejemplo, en una instalación nueva de OS X:

$ ./configure --with-mysql=/opt/local/include/mysql5 
+0

Lo intentaré más tarde ... Gracias –

+0

Hola, esto se está ejecutando en rails3 - ¿no es suficiente para instalar la gema e incluirla en el archivo gem? –

+2

No, Thinking Sphinx es una interfaz para Sphinx Search for Ruby, necesita instalar Sphinx en su sistema. – basicxman

2

La fuente generada parece correcta: ¿es posible que su versión de Sphinx se haya compilado sin compatibilidad con MySQL?

+0

Hola Pat, acabo de instalar la gema y puede ver en MySQL incluído . Tal vez podría intentar instalarlo como un complemento, pero estaba tratando de evitarlo. Es bastante frustrante ahora ... –

3

también cuando se instala en OSX través homebrew intente esto:

sudo ln -s /usr/local/mysql/lib /usr/local/mysql/lib/mysql 
brew install --interactive sphinx 
./configure 
make 
make install 
exit 
61

De acuerdo con el enlace here, simplemente podría hacer lo siguiente en homebrew (mac):

brew install sphinx --with-mysql 

que trabajó para mí :)

+0

¡Me salvaste el día! – Darmen

+2

siempre puede 'elaborar opciones [nombre del paquete]' que le dará todas las banderas disponibles. en este caso --mysql o --postgres –

+5

Tuve que 'brew reinstalar sphinx --mysql' ya que la búsqueda de sphinx ya estaba instalada. – RNickMcCandless

Cuestiones relacionadas