Search engine 如果查询多个索引,SphinxSe不会返回多值

Search engine 如果查询多个索引,SphinxSe不会返回多值,search-engine,sphinx,Search Engine,Sphinx,我使用SPHINXSE并查询许多索引(如Barryhunter所解释的) 我的问题是 在每个索引中,我都有同名的列 在我的sphinxSe表中,有一些字段的名称与这些属性类似 当我只在一个索引上运行查询时,这些字段会被填充,但当我使用多个索引时则不会 这是一个问题,因为我将使用id来简单地标识从哪个索引中找到该行 由于源代码可能更好,请在下面查找我的配置和查询 在我的sphinx.conf中 source src_article_tv : article_base {

我使用SPHINXSE并查询许多索引(如Barryhunter所解释的)

我的问题是

在每个索引中,我都有同名的列

在我的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'$$
所以 与

字段ressource\u id和ressource\u type被填充(使用正确的值)

但是

SELECT * FROM search.tv_generic where query = 'mons;index=idx_article_tv,idx_media_tv';
字段ressource\u id和ressource\u type为“0”

我发现了一个“脏”的解决方案

compat_sphinxql_magics = 1 
这就是工作

还是很脏,因为

  • compat_sphinxql_magics=1不推荐使用
  • 我不明白自己为什么要用compat_sphinxql_magics=1来工作

  • yu是否尝试在表连接中指定这两个索引sphinx://127.0.0.1:9312/idx_article_tv,idx_media_tv'
    SELECT * FROM search.tv_generic where query = 'mons;index=idx_article_tv,idx_media_tv';
    
    compat_sphinxql_magics = 1