Полнотекстовый поиск XML-данных с помощью Python: лучшие практики, плюсы и минусы

Задача

Я хочу использовать Python для выполнения полнотекстового поиска данных XML.

Пример данных

<elements>
  <elem id="1">some element</elem>
  <elem id="2">some other element</elem>
  <elem id="3">some element
    <nested id="1">
    other nested element
    </nested>
  </elem>
</elements>

Базовая функциональность

Самая основная функциональность, которую я хочу, - это поиск по запросу "другое "в XPath (" / elements / elem ") возвращает по крайней мере значение атрибута ID для соответствующего элемента (elem 2) и вложенного элемента (elem 3, nested 1) или соответствующих XPath.

Идеальная функциональность

Решение должно быть гибким и масштабируемым. Я ищу возможные комбинации этих функций:

  • поиск вложенных элементов (бесконечная глубина)
  • атрибутов поиска
  • поиск предложений и абзацев
  • поиск с использованием подстановочных знаков
  • поиск с использованием нечеткого соответствия
  • возврат точная информация соответствия
  • хорошая скорость поиска для больших файлов XML

Вопрос

Я не Не ожидая решения со всей идеальной функциональностью, мне придется комбинировать различные существующие функциональные возможности и самому кодировать остальное. Но сначала я хотел бы узнать больше о том, что там есть, какие библиотеки и подходы вы обычно используете для этого, каковы их плюсы и минусы.

РЕДАКТИРОВАТЬ: Спасибо за ответы, я добавил детали и объявили о награждении .

13
задан lecodesportif 28 April 2011 в 13:50
поделиться