sphinxsearch 给出缺少属性的错误

sphinxsearch gives error with missing attribute

我正在尝试使用联合两个 table 的查询来创建 sphinxsearch 索引。

索引到目前为止一直运行良好,但现在我需要索引中的更多数据,因此加入了另一个 table。

查询如下所示

  sql_query = SELECT IFNULL(`pbd`.`main_page`, 1) as `main_page`, \
                        `act`.`id`,  \
                                UNIX_TIMESTAMP(`act`.`date`) as date, \
                                `act`.`post_title`, \
                                `act`.`post_content`,\
                                `act`.`blog_name`, \
                                `act`.`blog_network`,\
                                CASE `act`.`blog_type`\
                                    WHEN 'premium' THEN 0 \
                                    WHEN 'plus' THEN 1 \
                                    WHEN 'basic' THEN 2 \
                                    WHEN '' THEN 2 \
                                ELSE 2 \
                                END as blog_type, \
                                crc32(`act`.`blog_cluster`) as category \
                FROM `wp_bd_activity` act \
                LEFT JOIN `wp_bd_premium_blogs_data` pbd ON act.blog_id = pbd.blog_id \
                where act.blog_id in (select blog_id from wp_blogs where deleted != 1 and public = 1)

尝试使用此命令旋转索引时:

/usr/bin/indexer activity --rotate

我收到这个错误

警告:未找到属性 'main_page' - 忽略

这是查询中的第一行。

有什么建议吗?我似乎无法弄清楚问题是什么。

mysql 是版本 5.5.58

sphinxsearch 是 2.0.4 版

结果集中的第一列,总是作为'document-id'。用于文档的唯一 ID。

... 因为 main_page 是第一列,它被假定为 id - 因此不再可用作属性(也不能是字段!)

猜测您的 act.id 真实的 唯一 ID,因此请将其放在第一位

sql_query = SELECT `act`.`id`,  \
   IFNULL(`pbd`.`main_page`, 1) as `main_page`, \
   UNIX_TIMESTAMP(`act`.`date`) as date, \

other 列的顺序并不重要(除了影响存储在索引中的顺序)- 它的组合 sql_attr* 设置等决定是否列是字段 and/or 属性。