1

由于我的生产日志中出现以下错误,我遇到了 Solr 无法重新索引我的网站的问题:

bundle exec rake sunspot:solr:reindex
rake aborted!
RSolr::Error::Http: RSolr::Error::Http - 400 Bad Request
Error: Illegal character ((CTRL-CHAR, code 12))
 at [row,col {unknown-source}]: [155,1]

我不确定这个“非法字符”是从哪里生成的,也不确定在哪里可以找到它。我非常感谢大家的帮助,因为它现在导致我的应用程序出现 500 服务器错误。谢谢,如果需要更多信息,请告诉我。

(Rails 3.2) (Rsolr 1.0.10)

4

1 回答 1

2

这通常是由数据库中的错误数据引起的。如果您使用的是 MySQL,您可以通过如下查询找到控制字符 12 的任何实例:

SELECT * FROM table WHERE col REGEXP CHAR(12);

然后,您可以从任何匹配行的内容中删除该字符并继续重新索引。

您还可以执行以下操作来删除控制字符:

UPDATE table SET col=REPLACE(col, CHAR(12), '') WHERE col REGEXP CHAR(12);

于 2014-06-20T17:09:37.487 回答