我正在尝试将文本数据导入XML文件(示例如下)导入Solr。除了任何带有“〈”字符的文本外,一切都正常。我尝试使用〈来转义这些字符,但当同一行中的文本包含XML打开标记char“〈"时,它仍然返回错误“Unexpected char '@'。Solr消息指示它需要一个空格,或“〉”或“/〉"。
我正在生成XML文件,并可以做任何需要的预解析。但在这一点上,我真的不确定除了在处理它们时简单地删除它们之外还能做什么。从我在Solr书籍中读到的内容来看,似乎StandardTokenizerFactory将处理这种类型的信息,因为它在电子邮件中非常常见。我认为该工厂将处理这种信息以及URL。然而,Solr也返回了http://www.test.com的名称空间错误。但这显然也与“〈”字符的存在有关。
我是否遗漏了一些简单的东西?这些看起来像是标准的字符模式,不应该产生错误。希望有人知道我在哪里混淆了Solr。如果我去掉了这几个字符,索引工作正常。但是对于数百个文件,我需要一个健壮的解决方案,即使这意味着删除字符。但是,这将希望不是最后的手段,因为我想保留尽可能多的信息索引尽可能。
谢谢你在这个问题上所能提供的任何启示!
<update>
<add>
<doc>
<field name="id">001</field>
<field name="text_en"> Sample info
John Smith <j.smithcha@abc.com>
additional info here...
</field>
</doc>
<doc>
<field name="id">002</field>
<field name="text_en"> Some special <(*&!^ characters/> here </field>
</doc>
</add>
</update>
1条答案
按热度按时间ymdaylpp1#
nitrin 0提供的答案是,通过将字符“〈”转义为“〈”以及XML解析器可能错误解释的其他字符,确保XML数据格式良好且有效。
字符转换应如下所示(在以下XML标准中):
此外,可以考虑使用CDATA来确保XML数据得到正确处理。
Tx到nitrin 0寻找解决方案!