我怎样才能让 Solr 导入包含嵌入式特殊字符(即“<”字符)的文件中的所有文本?
How can I have Solr import all text in a file that contains embedded special chars (namely "<" char)?
我正在尝试将文本数据导入 XML 文件(下面的示例)以导入 Solr。除了具有“<”字符的任何文本外,一切正常。我已经尝试使用 < 来转义那些,但它仍然是 returns 错误“每当同一行上的文本包含 XML 开放标记字符“<”时出现意外字符 '@'。Solr 消息表明它期待 space、“>”或“/>”。
我正在生成 XML 文件并且可以做任何需要的预解析。但在这一点上,我不太确定除了在处理它们时简单地删除它们之外还能做什么。从我在 Solr 书籍中读到的内容来看,StandardTokenizerFactory 似乎会处理此类信息,因为它在电子邮件中很常见。我认为工厂会处理这个以及 URL。然而,Solr 还为 http://www.test.com 返回了名称 space 错误。但这显然也与“<”字符的存在有关。
我是不是遗漏了一些简单的东西?这些看起来像是不应产生错误的标准字符模式。希望有人知道我在哪里混淆了 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>
nitrin0 提供的答案是通过将字符“<”转义为“<”以及其他会被错误解释的字符来确保 XML 数据格式正确且有效XML 解析器。
字符翻译应如下所示(符合XML标准):
< < (less than symbol)
> > (greater than symbol)
& & (ampersand symbol)
' ' (apostrophe symbol)
" " (quotation mark symbol)
此外,可以考虑使用 CDATA 来确保 XML 数据得到正确处理。
Tx to nitrin0 寻找解决方案!
我正在尝试将文本数据导入 XML 文件(下面的示例)以导入 Solr。除了具有“<”字符的任何文本外,一切正常。我已经尝试使用 < 来转义那些,但它仍然是 returns 错误“每当同一行上的文本包含 XML 开放标记字符“<”时出现意外字符 '@'。Solr 消息表明它期待 space、“>”或“/>”。
我正在生成 XML 文件并且可以做任何需要的预解析。但在这一点上,我不太确定除了在处理它们时简单地删除它们之外还能做什么。从我在 Solr 书籍中读到的内容来看,StandardTokenizerFactory 似乎会处理此类信息,因为它在电子邮件中很常见。我认为工厂会处理这个以及 URL。然而,Solr 还为 http://www.test.com 返回了名称 space 错误。但这显然也与“<”字符的存在有关。
我是不是遗漏了一些简单的东西?这些看起来像是不应产生错误的标准字符模式。希望有人知道我在哪里混淆了 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>
nitrin0 提供的答案是通过将字符“<”转义为“<”以及其他会被错误解释的字符来确保 XML 数据格式正确且有效XML 解析器。
字符翻译应如下所示(符合XML标准):
< < (less than symbol)
> > (greater than symbol)
& & (ampersand symbol)
' ' (apostrophe symbol)
" " (quotation mark symbol)
此外,可以考虑使用 CDATA 来确保 XML 数据得到正确处理。
Tx to nitrin0 寻找解决方案!