Я хочу манипулировать документом и изменять значение токена для полей, добавляя некоторое значение для каждого токена. Я делаю массовое обновление через DIH, а также отправляю документы через SOLRJ. У меня коэффициент репликации равным 2, поэтому репликация также должна работать. Значение, которое я хочу добавить, есть в документе как отдельное поле. Мне интересно узнать, где я могу перехватить документ перед индексированием, чтобы я мог манипулировать им. Один из вариантов, я могу думать о переопределении DirectUpdateHandler2. Это правильное место?Как перехватить документ в Solr
Я могу сделать это путем внешней обработки документа и передачи его в SOLR. Но я хочу сделать это внутри SOLR.
Поля документа:
- город: Mumbai
- RestaurantName: Разговор о
- Ключевые слова: КОФЕ, скул, Южной индийской, Бар
Я хочу индексировать ключевые слова, как
- mumbai_cofee
- mumbai_Chines
- mumbai_South Индийский
- mumbai_Bar
У вас есть образец, в котором вы хотели бы применить это. Я бы предложил добавить «PatternReplaceFilterFactory», чтобы решить проблему. –
@AbhijitBashetti - это не сработает, потому что вы не можете извлекать данные из другого поля в полевом анализе Solr. – frances
Драйвер JDBC, вероятно, самый популярный DIH ''. Если вы используете это, вы можете выполнить это во встроенных SQL-запросах. Если это так, вы можете использовать 'CONCAT (RestaurantName,« _ », city) AS-ресторан, CONCAT (ключевое слово,« _ », city) ключевое слово AS в вашем SQL-запросе в конфигурации импорта данных Solr. –
frances