2017-02-22 34 views
0

У меня есть два документа (.csv), я хочу объединить его. Является ли это возможным?Объединить два документа в Solr

Вот пример

Document1:

<doc> 
<arr name="id"> 
    <long>200000000</long> 
</arr> 
<arr name="Name"> 
    <str>Sample</str> 
</arr> 
<arr name="first_name"> 
    <str>Sally</str> 
</arr> 
</doc> 

документ2:

<doc> 
<arr name="id"> 
    <long>200000000</long> 
</arr> 
<arr name="Street"> 
    <str>Any Street</str> 
</arr> 
<arr name="State"> 
    <str>Any State</str> 
</arr> 
</doc> 

Он должен выглядеть следующим образом:

<doc> 
<arr name="id"> 
    <long>200000000</long> 
</arr> 
<arr name="Name"> 
    <str>Sample</str> 
</arr> 
<arr name="first_name"> 
    <str>Sally</str> 
</arr> 
<arr name="Street"> 
    <str>Any Street</str> 
</arr> 
<arr name="State"> 
    <str>Any State</str> 
</arr> 
</doc> 

Как я могу это сделать в Solr? Должен ли я создать второе ядро ​​и как-то слить его? Или что мне делать?

+0

Добавьте, что вы пробовали до сих пор на вопрос. – Aaron

ответ

0

Да, это возможно, вы просто делаете это:

  1. индекса первого документ Document1
  2. с помощью partial updates обновить этот документ с дополнительными данными:

    {"id":"200000000", 
    "Street":{"add":["Any Street"]}, 
    "State":{"add":["Any State"]} 
    } 
    

Существует только требование: все ваши поля должны быть сохранены (сохранены = "true") или docValues ​​(docValues ​​= "true")

0

Слияние сердечников здесь не поможет. Как указано подробно в Apache Solr Reference, для объединения индексов они должны отвечать следующим требованиям:

Эти два индекса должны быть совместимы: их схемы должны содержать те же поля, и они должны анализировать поля одинаково.

Теперь это зависит от вашего прецедента.

  1. В случае, если у вас есть оба обновления CSV файлы, доступные в то же время вы можете написать DataImportHandler (для нескольких источников), чтобы объединить данные из обоих файлов CSV и индекса на Solr

  2. Вы можете определить поля для оба документа в схеме. И может индексировать первый CSV-файл. И частичное обновление индекса вторым файлом csv

0

Вы должны объединить эти файлы csv самостоятельно, если это возможно. Это обычная проблема, вы можете, например, использовать Unix join utility.

Если вам абсолютно необходимо сделать это на стороне Solr И вы не можете преобразовать один из файлов в атомное обновление, вы можете следить за ним на SOLR-9530, но он еще не выпущен.

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

  • Нет связанных вопросов^_^