我在一个新闻网站工作,该网站将他们所有的故事都存储为 XML。我知道,这不是最好的方法,但它就是这样。我正在尝试做的是使搜索网站上的 XML 文件成为可能。现在我们的搜索功能全部由 Google 提供支持(它只搜索 Google 已经抓取的任何内容)。
我马上想到的是使用Grep,这可以正常工作,但可能不会扩大太多。另一个需要更多工作但效果更好的选择是将部分 XML 存储在关系数据库中。
鉴于我们的后端设置方式,迁移到不同的存储模型需要很长时间,所以目前,这就是我们必须使用的。想法?
我在一个新闻网站工作,该网站将他们所有的故事都存储为 XML。我知道,这不是最好的方法,但它就是这样。我正在尝试做的是使搜索网站上的 XML 文件成为可能。现在我们的搜索功能全部由 Google 提供支持(它只搜索 Google 已经抓取的任何内容)。
我马上想到的是使用Grep,这可以正常工作,但可能不会扩大太多。另一个需要更多工作但效果更好的选择是将部分 XML 存储在关系数据库中。
鉴于我们的后端设置方式,迁移到不同的存储模型需要很长时间,所以目前,这就是我们必须使用的。想法?
添加一些缓存可能会帮助您扩展 grep 的想法。但是,您可能会考虑一种解决方案,该解决方案不仅可以解决今天的问题,还可以使您更接近明天的更好解决方案。也许设计一个更好的解决方案并随着时间的推移逐步实现它会起到作用。
我还建议使用 XML 数据库系统,例如 BaseX(.org),因为它非常快。我建议将每篇文章存储在单独的文件中。BaseX 支持 XQuery 3.0 以及全文、更新工具...
如果您致力于使用 XML,我建议您使用原生 XML 数据库解决方案,例如 Berkeley DBXML 或 eXist-db。它们都允许你向它们发射 xquery。eXist 还实现了 DBXML 没有的全文搜索,但是后者在检索数据方面更快。