solr: древовидная структура DIH

#solr #dataimporthandler

#solr #dataimporthandler

Вопрос:

Я пытаюсь денормализовать древовидную структуру в solr.

Я имею в виду, что в моей реляционной базе данных у меня есть это:

                                        ------------ 
                                      |            |
 --------------               --------v--------    |
|              |             |                 |   |
|   Employee    -----------> |   Department     --- 
|              |             |                 |
 --------------               ----------------- 
  

Любой отдел может иметь любой отдел.

Есть ли какие-либо советы или рекомендации для денормализации такого рода отношений в solr?

Я немного подробнее.

В настоящее время я создал индекс, в котором хранятся все денормализованные сотрудники.

Что-то вроде:

 employee_id, employee_name, department_id, depatment_name
  

Тем не менее, мне нужно выполнить поиск, например:

   Department (210)
    Deparment1 (100)
      Department-1.2 (50)
      Department-1.3 (50)
    Department2 (110)
      Department-2.2 (40)
      Department-2.3 (70)
  

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

Есть идеи о том, как это получить?

Надеюсь, я так хорошо объяснил…

Комментарии:

1. Пользовательское поле можно определить с помощью токенизатора иерархии путей: lucene. apache.org/solr/guide/6_6 /… — убедитесь, что ваш SQL включает весь путь, и Solr обработает его, чтобы вы могли генерировать фасеты на другой стороне от каждого токена (а в вашем интерфейсе вы отображаете только последнюю часть пути)

2. Если вы никогда не использовали поля ancestor_path и descendent_path в Solr, этот блог может помочь: library.brown.edu/DigitalTechnologies /…

3. Есть ли какие-либо проблемы с использованием корневой косой черты? В вашем примере вы используете db/rel/mysql without root / . Как насчет использования /db/rel/mysql ?