Индексировать документы другого типа с помощью Solr

#solr #solrj #solrcloud #solr4

#solr #solrj #solrcloud #solr4

Вопрос:

Мне нужно проиндексировать документы разных типов JSON, каждый документ JSON может быть в любом формате, может иметь вложенные объекты JSON (не имеют элемента управления). После завершения индексации должна быть доступна функция поиска. Поскольку у нас нет контроля над схемой или форматом документа JSON, мы решили использовать опцию schemaless. Застрял со следующими проблемами:

  • Все значения преобразуются в list из-за конфигураций в процессоре обновления ‘AddSchemaFieldsUpdateProcessorFactory’.
    • Пример: Строковый тип данных сопоставляется с text_general, для него установлено многозначное значение = true.
    • Если я определяю поле в управляемой схеме, тогда все в порядке.
    • Ввод: {"firstname":"ASGASGKSAJHAJS"} Вывод: {"firstname":["ASGASGKSAJHAJS"]}
  • Все вложенные документы преобразуются в плоскую структуру
  • {"firstname":"ASGASGKSAJHAJS", "address":{"addressLine1":"4216 jshakjfhajh"}} преобразуется в {"firstname":"ASGASGKSAJHAJS", "address.addressLine1":"4216 jshakjfhajh"}

Я пытаюсь индексировать вслепую любой тип (например, формат JSON) документа. При поиске я ожидаю ответа в формате, аналогичном запросу (на момент индексации), с минимальными изменениями конфигурации Solr. На данный момент я имею дело только с JSON, следующее требование для индексации PDF. Для моего варианта использования Solr является правильным выбором или мне следует рассмотреть другие варианты?

Я новичок в Solr, просмотрел документацию и статьи, не нашел ни одного простого способа преодолеть вышеуказанные проблемы. Будем признательны за любые рекомендации.

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

1. Если вы пытаетесь сделать это с «минимальными изменениями конфигурации Solr», как вы сказали, то Solr, скорее всего, не подходит вам наилучшим образом. Однако, если вы готовы потратить время на настройку Solr и / или вашего JSON для правильного использования, Solr может подойти.

2. Привет @HectorCorrea, спасибо за ответ. До сих пор я делал следующее, т. Е. для первой проблемы, используя Java reflection API и Solr Rest API, я создаю / определяю поля. Что касается второй проблемы, как только я получу ответ на запрос Solr, я исправлю объект JSON с помощью библиотеки Java сторонних производителей. Есть ли лучшее решение для второй проблемы. Я новичок в Solr, заинтересован в изучении и внедрении решения, ищу некоторые рекомендации.