我不确定我遇到的问题发生在哪里。当我运行部署任务时 rake thinking_sphinx:configure 工作正常,但是当它尝试索引它时会发生此错误:
错误:索引“board_core”:第 6 列没有名称。
错误:索引“board_delta”:第 6 列没有名称。
...对于我所有的索引和增量索引,依此类推。起初我认为这是 capistrano 的问题,因为我在 windows 机器和 mac 上设置了项目,并且 cap staging deploy 部署到了 ubuntu 设置。
似乎出错的查询的 SQL 是:
SELECT `boards`.`id` * 5 + 2 AS `id` , CAST(`boards`.`name` AS CHAR) AS `name`, CAST(`boards`.`display_name` AS CHAR) AS `display_name`, CAST(`boards`.`description` AS CHAR) AS `description`, `boards`.`id` AS `sphinx_internal_id`, 2576811075 AS `class_crc`, '2576811075' AS `subclass_crcs`, 0 AS `sphinx_deleted`, UNIX_TIMESTAMP(`boards`.`created_at`) AS `created_at`, GROUP_CONCAT(DISTINCT `users`.`id` SEPARATOR ',') AS `user`, GROUP_CONCAT(DISTINCT `user_boards_boards`.`id` SEPARATOR ',') AS `user_board`, COUNT(user_boards.id) AS `num_users` FROM `boards` LEFT OUTER JOIN `user_boards` ON (`boards`.`id` = `user_boards`.`board_id`) LEFT OUTER JOIN `users` ON (`users`.`id` = `user_boards`.`user_id`) LEFT OUTER JOIN `user_boards` user_boards_boards ON user_boards_boards.board_id = boards.id WHERE `boards`.`id` >= $start AND `boards`.`id` <= $end AND `boards`.`delta` = 0 GROUP BY `boards`.`id` ORDER BY NULL
..意味着破坏的部分是 select 0 as ``sphinx_deleted \
,这对我来说似乎很好(当直接通过 mysql 调用它时它可以工作,当然减去使用 $start 和 $end 的 where 子句的部分)所以我不知道是什么可能导致错误。我唯一的想法是 sphinx 的索引器出错了,但如果是这种情况,那么我仍然不知道如何解决这个问题。
提前感谢您的任何帮助/提示。