Apache Solr - Добавление документов (XML)

В предыдущей главе мы объяснили, как добавлять данные в Solr в форматах файлов JSON и .CSV. В этой главе мы продемонстрируем, как добавлять данные в индекс Apache Solr, используя формат документа XML.

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

Предположим, нам нужно добавить следующие данные в индекс Solr, используя формат файла XML.

Студенческий билет Имя Фамилия Телефон город
001 Раджив Редди 9848022337 Хайдарабад
002 Сиддхартх Бхаттачарья 9848022338 Калькутта
003 Раджеш Ханна 9848022339 Дели
004 Preethi Агарвал 9848022330 Пуна
005 Trupthi Моханти 9848022336 Бхубанешвар
006 Арчана Мишра 9848022335 Ченнаи

Добавление документов с помощью XML

Чтобы добавить указанные выше данные в индекс Solr, нам нужно подготовить XML-документ, как показано ниже. Сохраните этот документ в файл с именемsample.xml.

<add> 
   <doc> 
      <field name = "id">001</field> 
      <field name = "first name">Rajiv</field> 
      <field name = "last name">Reddy</field> 
      <field name = "phone">9848022337</field> 
      <field name = "city">Hyderabad</field> 
   </doc>  
   <doc> 
      <field name = "id">002</field> 
      <field name = "first name">Siddarth</field> 
      <field name = "last name">Battacharya</field> 
      <field name = "phone">9848022338</field> 
      <field name = "city">Kolkata</field> 
   </doc>  
   <doc> 
      <field name = "id">003</field> 
      <field name = "first name">Rajesh</field> 
      <field name = "last name">Khanna</field> 
      <field name = "phone">9848022339</field> 
      <field name = "city">Delhi</field> 
   </doc>  
   <doc> 
      <field name = "id">004</field> 
      <field name = "first name">Preethi</field> 
      <field name = "last name">Agarwal</field> 
      <field name = "phone">9848022330</field> 
      <field name = "city">Pune</field> 
   </doc>  
   <doc> 
      <field name = "id">005</field> 
      <field name = "first name">Trupthi</field> 
      <field name = "last name">Mohanthy</field> 
      <field name = "phone">9848022336</field> 
      <field name = "city">Bhuwaeshwar</field> 
   </doc> 
   <doc> 
      <field name = "id">006</field> 
      <field name = "first name">Archana</field> 
      <field name = "last name">Mishra</field> 
      <field name = "phone">9848022335</field> 
      <field name = "city">Chennai</field> 
   </doc> 
</add>

Как вы можете заметить, XML-файл, написанный для добавления данных в индекс, содержит три важных тега, а именно: <add> </add>, <doc> </doc> и <field> </ field>.

  • add- Это корневой тег для добавления документов в индекс. Он содержит один или несколько документов, которые нужно добавить.

  • doc- Добавляемые нами документы должны быть заключены в теги <doc> </doc>. Этот документ содержит данные в виде полей.

  • field - Тег поля содержит имя и значение полей документа.

После подготовки документа вы можете добавить его в указатель любым из способов, описанных в предыдущей главе.

Предположим, файл XML существует в bin каталог Solr, и он должен быть проиндексирован в ядре с именем my_core, то вы можете добавить его в индекс Solr, используя post инструмент следующим образом -

[Hadoop@localhost bin]$ ./post -c my_core sample.xml

Выполнив указанную выше команду, вы получите следующий результат.

/home/Hadoop/java/bin/java -classpath /home/Hadoop/Solr/dist/Solr-
core6.2.0.jar -Dauto = yes -Dc = my_core -Ddata = files 
org.apache.Solr.util.SimplePostTool sample.xml 
SimplePostTool version 5.0.0 
Posting files to [base] url http://localhost:8983/Solr/my_core/update... 
Entering auto mode. File endings considered are xml,json,jsonl,csv,pdf,doc,docx,ppt,pptx,
xls,xlsx,odt,odp,ods,ott,otp,ots,rtf,htm,html,txt,log 
POSTing file sample.xml (application/xml) to [base] 
1 files indexed. 
COMMITting Solr index changes to http://localhost:8983/Solr/my_core/update... 
Time spent: 0:00:00.201

Проверка

Посетите домашнюю страницу веб-интерфейса Apache Solr и выберите ядро my_core. Попробуйте получить все документы, передав запрос «:» в текстовой области.qи выполните запрос. При выполнении вы можете заметить, что нужные данные добавляются в индекс Solr.