【发布时间】:2012-08-22 17:13:57
【问题描述】:
我有一个包含 600.000 个文档的 Solr-Servlet,每个文档包含大约 10-30 个多值字段。为了更新文档,我遇到了一些问题,因为 Solr 在 3.6 版中没有任何更新功能。我想做的事情: 我想做的事情: 我想要一个应用程序,它只需要应该插入到文档中的字段。例如:
Document1(field1 / value1, field2 / value2)
我想在这个文档中插入一个 field3 / value3。目前,有必要这样做:
Document1(field1 / value1, field2 / value2, field3 / value3)
由于每个文档中的字段数量较多,我只想添加field3 / value3,而不需要像上图那样写知道所有其他字段:
Document1(field3 / value3)
这就是为什么我编写了一个应用程序,它首先自动从 Solr 获取所有数据,然后添加一个应该插入到文档中的字段。一切都很顺利,直到我处理文档,其中字段的值如 'ä' 'ö' 'ü' 等等。 Solr 比返回错误:
org.apache.solr.common.SolrException: 无效的 UTF-8 起始字节 0xfc
我发现这是由上面发布的字符引起的。因此我想知道我的输入流是哪种编码(我为此使用了juniversalchardet),它指出编码是WINDOWS-1252。我的应用程序是用 Java 编写的,没有任何 Solr 库(只有标准的 http 库和用于 xml 处理的 javax)。您知道编码更改的位置以及如何避免它吗?是 Java 还是它,因为 servlet 在 Windows 机器上运行?
感谢您的帮助!
编辑:我应该使用 Solrj 库吗?有谁知道这是否可以避免我的问题?
【问题讨论】:
-
您使用的编码取决于您的平台。您能否发布您用于提交文档的代码和带有错误的 solr 日志文件?