索引XML文档/文件的最佳方法是什么?

时间:2011-05-25 14:23:34

标签: php xml indexing

我有一个XML文档,其中包含大约4000个数据条目。数据将在PHP环境中使用,并且是Web应用程序所必需的。我想过使用“sphinx”(http://sphinxsearch.com/docs/2.0.1/xmlpipe2.html)来索引数据但是想知道,还有哪些更好的选择。

提前致谢, 安迪

编辑:我不想编写一个导入程序脚本,该脚本将XML文件加载到例如的MySQL数据库。它应该是这样的:将文件加载到这个工具/程序/中,然后它应该可以从PHP中搜索。

2 个答案:

答案 0 :(得分:3)

如果您有4000个条目并且只需要一个条目,则会读取整个文件,直到找到您的条目。那可能是很长一段时间。您可能希望使用像MySQL这样的数据库。


如果您想进行XML文件搜索,最终会选择以下两个选项之一:

  1. 您将整个文件解析为 数组或可能的东西 快速搜索(将导致很多 每次打电话给你的记忆 PHP脚本)
  2. 您遍历整个XML 文件,搜索您想要的 进入(那将更慢) 第一,因为你必须 看看它是否是您想要的每个条目 你可以继续的时间 搜索)。
  3. 出于性能原因,这些选项都不是真的可以接受。如果您希望用户编辑XML文件,它会变得更加棘手,因为它们不是多线程保存(如数据库)。

    如果您希望搜索效果良好,则需要使用数据库。它就像那样容易。

    另一件事是让用户机器解析XML文件(使用JavaScript)并获得所需文章的ID(然后从您的服务器打开)。但是,根据您的XML文件的大小和用户机器的功能,浏览器可能会中断并取消脚本。

答案 1 :(得分:2)

我是第二个Lukas:不管你喜欢与否,如果你期待任何一种表现,你都不会逃避解析和规范化。

您将充分利用可以导入xml或解析的xml(作为对象或json)的ORM(SQL或NoSQL)并直接保留它。 (我很确定Doctrine可以做这样的事情。还可以查看MongoDB和CoucheDB中的NoSQL选项。)