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