0

I'm using Sphinx, and I'm trying to execute the next query in mysql:

SELECT * 
FROM `index_efemerides`, `index_programas`, `index_guias_para_el_aula`, `index_producciones_interactivas` 
WHERE MATCH('(@(titulo,descripcion,etiquetas) nuevo)') 
OPTION `field_weights` = (index_programas.titulo=100, index_programas.etiqueta=15, index_programas.descripcion=5, index_producciones_interactivas.titulo=53, index_producciones_interactivas.etiqueta=13, index_producciones_interactivas.descripcion=5, index_guias_para_el_aula.titulo=52, index_guias_para_el_aula.etiqueta=12, index_guias_para_el_aula.descripcion=5, index_efemerides.titulo=51, index_efemerides.etiqueta=11, index_efemerides.descripcion=5)

But I'm getting the next error msg:

sphinxql: syntax error, unexpected SUBKEY, expecting '=' near '.titulo=100, index_programas.etiqueta=15, index_programas.descripcion=5, index_producciones_interactivas.titulo=53, index_producciones_interactivas.etiqueta=13, index_producciones_interactivas.descripcion=5, index_guias_para_el_aula.titulo=52, index_guias_para_el_aula.etiqueta=12, index_guias_para_el_aula.descripcion=5, index_efemerides.titulo=51, index_efemerides.etiqueta=11, index_efemerides.descripcion=5)'

If I remove the dots it seems to work (not really sure because if i invent a field name, it doesn't show me any error). But i need to set the field weights different per table.

MartyIX
  • 27,828
  • 29
  • 136
  • 207
  • What are you expecting the dots to do anyway? Sphinx doesnt have subfields. – barryhunter Nov 13 '15 at 11:20
  • I am using real time indexes. So i have 4 tables, one for each index. Most of them have the same field names. So i need to set different weights to index_programas.titulo and index_efemerides.titulo. – Gabriel Moreira Nov 13 '15 at 17:50

1 Answers1

0

I've just found index_weight property. A possibility is to complement index_weight with field_weights like this:

SELECT * FROM `index_efemerides`, `index_programas`, `index_guias_para_el_aula`, `index_producciones_interactivas` WHERE MATCH('(@(titulo,descripcion,etiquetas) nuevo)') OPTION `field_weights` = (titulo=100, etiqueta=15, descripcion=5), `index_weights` = (index_programas=100, index_guias_para_el_aula=50, index_efemerides=75, index_producciones_interactivas=25);

Not pretty sure of the resulting weight.