2016-04-01 2 views
0

Я пишу приложение Java и хочу индексировать Xml-файл с Lucene, чтобы я мог искать лекарство, которое имеет заданную цель. Размер файла составляет 400 МБ, и он заполнен более 8000 лекарственными препаратами.Индекс один Xml-файл с Lucene

<drug type="biotech" created="2005-06-13" updated="2015-11-27"> 
    <drugbank-id primary="true">DB00001</drugbank-id> 
    <drugbank-id>BIOD00024</drugbank-id> 
    <drugbank-id>BTD00024</drugbank-id> 
    <name>Lepirudin</name> 
    .... 
    <targets> 
     <target position="1"> 
      <id>BE0000767</id> 
      <name>Epidermal growth factor receptor</name> 
      .... 
     </target> 
     .... 
    </targets> 
</drug> 
<drug> 
.... 
</drug> 

Как я могу индексировать этот файл, чтобы один препарат был одним Документом? Если у кого-то есть полезные ссылки/ресурсы или советы о том, как проиндексировать этот Xml, пожалуйста, дайте мне знать :)

ответ

1

Самая гибкая стратегия обычно составляет just use SolrJ через небольшое приложение Java, которое читает файл и преобразует его в подходящую формат для индексирования в Solr. Таким образом, вы можете легко предварительно обработать определенные поля, прежде чем они будут получены Solr.

Другой вариант - use XSL to transform the XML file into something that Solr understands. Это можно использовать либо на стороне сервера (например, с подключенным XSLTUpdateRequestHandler), либо на стороне клиента (преобразовать XML-документ в запрос на обновление и отправить его стандартным обработчикам запросов).

+0

Привет и спасибо за ответ, следует ли использовать для этого встроенныйSolrServer? Я хочу индексировать xml-файлы при запуске и запуске моего приложения/плагина несколько раз, когда используется плагин, а затем повторно индексировать файлы при следующем запуске. Нужно ли мне предварительно обрабатывать и индексировать каждую область препарата программно или я могу использовать schema.xml? Любые хорошие учебники по созданию и использованию schema.xml? – user1171426

Смежные вопросы