【发布时间】:2022-01-20 18:12:43
【问题描述】:
我尝试使用 BaseX(basex.org,没有论坛,商业用例的付费帮助,帮助文件中没有出现上述搜索词)db 为维基百科文本转储创建离线数据库(.xml 与大约 20 GB,未知数量的“页面”)。
在 BaseX 中创建新数据库后,程序会非常快速地导入大量“实体”,这些“实体”中的每一个都可能是多个标签之一,例如 ...,并且以此类推,页面数量要少得多。
导入 5000 万个“实体”后,总是收到错误消息“D:/dewiki.xml”(第 99057203 行):JAXP00010004:实体的累积大小为“50,000,001”,超过“50,000,000 “由“FEATURE_SECURE_PROCESSING”设置的限制,并且数据库似乎仍然是空的,也就是说,即使是在那个时间点之前处理过的页面似乎也没有被导入。
我已经手动搜索了 BaseX 附带的许多通用数据库维护等文件,以查找“feature_secure_processing”,但在这些多个文件中没有找到这样的字符串,并且没有关于它的设置,在BaseX“选项”。
我知道这个字符串经常用在 XML 或其他环境中,为了防止来自外部的 web 攻击,但很明显,在我的用例中,我不需要这样的“保护”,而是我需要导入整个维基百科 XML 转储文件,以便 BaseX 创建数据库,连同索引等等。
例如,在更常见的“WikiTaxi”中,只能针对当前页面进行内容搜索,甚至不允许从页面内容中选择然后复制,显然是为了防止学童复制并粘贴到他们的作业中;因此,一旦限制问题得到解决,BaseX(不是:XBase)似乎是访问 Wikipedia 转储的更好解决方案。
如何解决我在 BaseX 中的问题?
我知道Error: xml.sax.SAXParseException while parsing a xml file using wikixmlj 以及那里对 Java 的建议,但我不知道 Java 或任何其他编程语言,所以这个答案对我没有帮助。
非常感谢!
【问题讨论】: