私は SPHINXSE を使用し、多くのインデックスをクエリします (ここで Barryhunter が説明したよう に、 Joining on Multiple SphinxSE Tables In Single Query )
私の問題は
各インデックスには、同じ名前の列があります。
私の sphinxSe テーブルには、これらの属性のような名前のフィールドがあります。
1 つのインデックスのみでクエリを実行すると、これらのフィールドは入力されますが、多数のインデックスを使用すると入力されません。
id を使用して、行が見つかったインデックスから単純に識別するので、私は問題です。
おそらくソースの方が良いので、私のconfの下にあるクエリとクエリを見つけてください
私の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';
フィールド ressource_id と ressource_type が埋められます (適切な値で)
しかし、
SELECT * FROM search.tv_generic where query = 'mons;index=idx_article_tv,idx_media_tv';
フィールド ressource_id & ressource_type は「0」です