Мне нужно реализовать функцию поиска, которая способна быстро выполнять произвольные сложные запросы к XML-данным. Если пользователь делает запрос, все файлы XML должны быть найдены для поиска возможных совпадений.
У пользователей будет много XML-файлов (несколько сотен или более), размер которых обычно составляет несколько килобайт. Все XML-файлы имеют практически одинаковую структуру.
Я уже тестировал XPath, он слишком медленный для моих нужд.
Как это можно сделать наиболее эффективно? Можно ли создавать индексы для содержимого файлов XML (сохраняя семантику содержимого, а не просто полнотекстовый поиск)?
Будет ли полезно помещать данные XML в (встроенную) базу данных SQL и выполнять запросы с SQL?
Какие еще у меня есть возможности?