我必须实现一个能够快速对 XML 数据执行任意复杂查询的搜索功能。如果用户进行查询,则必须搜索所有 XML 文件以找到可能的匹配项。 用户将拥有大量 XML 文件(几万个或更多),这些文件的大小通常为几千字节。所有的 XML 文件都具有几乎相同的结构。
我已经对 XPath 进行了基准测试,它对我的需求来说太慢了。
如何最有效地完成它?是否可以为 XML 文件的内容创建索引(保留内容语义,而不仅仅是普通的全文搜索)?
将 XML 数据放入(嵌入式)SQL 数据库并使用 SQL 进行查询是否有用?
我还有哪些其他可能性?
最佳答案
不要尝试重新发明轮子!
我会将 XML 导入数据库(例如 SQLite)(加上元数据、XML 信息),然后进行查询。
编辑 1:
您可以实现一个“放置文件夹”,它在第一次运行时被“索引”/导入。可以实现文件夹观察器以仅更新 XML 文件的新内容/更改。 SQLite 可以在内存中运行以获得最快的 I/O 性能。
关于.net - 在 .NET 中快速搜索 XMl 文件(或如何索引 XML 文件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2956162/