我在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
}
任何建议我都能做到吗?
您编写它的方式,是对一列进行相等性检查(据说不存在)。
应使用AS
编写:
...
status, \
1 AS `table_id` \
FROM cache_v_t1
...
status, \
2 AS `table_id` \
FROM cache_v_t2
...
反引号是可选的,但建议使用。