Я использую Lucene для индексации документов, состоящих из фрагментов.
Документ в целом состоит из полей, описывающих его (т. Е. Автор, заголовок, дата публикации).
Фрагменты содержат текст и теги (ключевые слова). Я хотел бы иметь возможность:
- поиск всех фрагментов по автору с тегом Foo.
- поиск всех документов по названию.
- поиск всех документов, содержащих несколько слов (в любом фрагменте)
Я читал о BlockJoinQuery в Lucene, но я не уверен, подходит ли он для моей проблемы: например, имея следующий документ:
document: title="Hello World" author="Sam Brown"
fragment 1: tags="sunny" text="...."
fragment 2: tags="cloudy" text="moody and sleepy"
я смогу найти этот документ с запросом:
tags:sunny and text:sleepy
?
Такой запрос не будет соответствовать ни одному дочернему документу (фрагменту), но, возможно, он будет соответствовать родительскому документу - хотя в документации lucene это не указано.