Sphinx Config:添加手动列,这在MySQL数据库中找不到

问题描述 投票:0回答:1

我在Mysql中有2个数据库,我使用相同的Sphinx配置对其进行索引。我希望能够通过Sphinx配置示例“ table_id”添加手动列,这样我就可以知道通过Sphinx从哪个表中找到了ID。

这是我的带有table_id的配置(示例),但是不起作用,并且在Mysql上找不到列这样,我不需要通过Mysql Table创建新列。

source v_v1_src_p1
{
  type                    = mysql

  sql_host                = 127.0.0.1
  sql_user                = root
  sql_pass                = 
  sql_db                  = 
  sql_port                = 3306  # optional, default is 3306

  sql_query_pre           = SET NAMES utf8

  sql_query = SELECT \
    id as id, \
    unique_id, \
    v_id, \
    v_title, \
    status, \
    table_id = 1 \
    FROM cache_v_t1 ;

  sql_field_string = unique_id
  sql_field_string = v_id
  sql_field_string = v_title
  sql_attr_uint = status
  sql_attr_uint = table_id
}

# Part 2

source v_v1_src_p2
{
  type                    = mysql

  sql_host                = 127.0.0.1
  sql_user                = root
  sql_pass                = 
  sql_db                  = 
  sql_port                = 3306  # optional, default is 3306

  sql_query_pre           = SET NAMES utf8

  sql_query = SELECT \
    id as id, \
    unique_id, \
    v_id, \
    v_title, \
    status, \
    table_id = 2 \
    FROM cache_v_t2 ;

  sql_field_string = unique_id
  sql_field_string = v_id
  sql_field_string = v_title
  sql_attr_uint = status
  sql_attr_uint = table_id
}

任何建议我都能做到吗?

mysql sphinx
1个回答
0
投票

您编写它的方式,是对一列进行相等性检查(据说不存在)。

应使用AS编写:

...
status, \
1 AS `table_id` \
FROM cache_v_t1 
...
status, \
2 AS `table_id` \
FROM cache_v_t2 
...

反引号是可选的,但建议使用。

© www.soinside.com 2019 - 2024. All rights reserved.