SphinxSe не возвращает многозначный, если запросы содержат много индексов

Я использую SPHINXSE. Я запрашиваю много индексов (например, Barryhunter здесь. Присоединение к Несколько таблиц SphinxSE в одном запросе )

My problem is

В каждом индексе у меня есть столбец с тем же именем.

В моей таблице sphinxSe у меня есть поля, названные такими атрибутами.

Когда я запускаю запрос только по одному индексу, поля тезисов заполняются, но не когда я использую много индексов.

Я проблема, потому что я бы использовал id, чтобы просто определить, из какого индекса найден строка.

Как это возможно, с источником, найдите ниже мой конфиг и запросы

в моем sphinx.conf

   source src_article_tv : article_base {
          sql_query_pre = SET NAMES utf8
          sql_query = \
                 SELECT /* sphinx index search article_tv_base */ \
                         concat (id,'40'), \
                         id AS ressource_id, \
                         'article' AS ressource_type, \ (...)
         sql_attr_uint = ressource_id
         sql_attr_string = ressource_type

 (...)



source src_media_tv : media_base
{
        sql_query_pre = SET NAMES utf8
        sql_query = \
                SELECT /* sphinx index search full media */ \
                        concat (o.id,'20'), \
                        o.id AS ressource_id, \
                        'media_tv' AS ressource_type, \
(...)

        sql_attr_uint = ressource_id
        sql_attr_string = ressource_type


delimiter $$
CREATE TABLE `tv_generic` (
    `id` bigint(20) unsigned NOT NULL,
    `weight` int(11) NOT NULL,
    `query` varchar(3072) COLLATE utf8_unicode_ci NOT NULL,
    `ressource_id` bigint(20) unsigned NOT NULL,
    `ressource_type` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
    KEY `query` (`query`(1024))
) ENGINE=SPHINX DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
CONNECTION='sphinx://127.0.0.1:9312/idx_tv'$$

Так с

SELECT * FROM search.tv_generic where query = 'mons;index=idx_article_tv';

или

SELECT * FROM search.tv_generic where query = 'mons;index=idx_media_tv';

fields ressource_id & ressource_type are filled (with the good values)

но с

SELECT * FROM search.tv_generic where query = 'mons;index=idx_article_tv,idx_media_tv';

fields ressource_id & ressource_type are '0'

0
nl ja de
Попробовал ли yu указать оба индекса в таблице CONNECTION = 'sphinx: //127.0.0.1: 9312/idx_article_tv, idx_media & zwnj; _tv'
добавлено автор barryhunter, источник

1 ответы

Я нашел «грязное» решение.

compat_sphinxql_magics = 1 

и это работа.

Это все еще грязно, потому что

  1. compat_sphinxql_magics = 1 is deprecated http://sphinxsearch.com/forum/view.html?id=9239
  2. I don't understand myself why it's work with compat_sphinxql_magics = 1
0
добавлено