У меня есть коллекция книг на разных языках. Мне нужно связать части каждой книги друг с другом на основе их сходства. Мне нужно связать книги с похожими книгами, главы с похожими главами и подглавы с похожими подглавами.
Предпочтительно, чтобы мера подобия также учитывала, насколько похожи следующие более высокие уровни, поэтому, когда я хочу сравнить две главы, она сначала проверяет, насколько похожи книги, к которым принадлежат главы, друг другу, и использует это как базовый уровень. Я предполагаю, что эту часть мне придется реализовать вручную, но мне интересно, как эффективно выполнить иерархическую компоновку.
Есть ли способ сообщить lucene, что документы в указателе следуют иерархической структуре, в которой книги состоят из глав, а главы состоят из подглав (которые являются фактическими документами для хранения)? Если это так, книги и главы могут быть созданы во время выполнения путем объединения документов, из которых они состоят. Есть ли у Lucene способ сделать это?
Одним из простых альтернативных подходов было бы создание отдельных индексов для каждого уровня разрешения, то есть один для книг, один для глав и один для подглав. Но это кажется неэлегантным, и я не уверен, что это будет работать хорошо, учитывая, что я получу разные значения частоты обратного документа в разных индексах. Это приводит к второстепенному вопросу: есть ли способ заставить lucene рассматривать только определенные документы в качестве эталонного класса для своих расчетов tf-idf?