Каждый документ может иметь поле «threadId». После выполнения поиска вы можете просмотреть свой набор результатов и вернуть все уникальные идентификаторы threadId.
Сложная часть определяет, сколько результатов вы хотите вернуть. Если вы хотите показать, скажем, 10 результатов на странице результатов, вам, вероятно, понадобится Lucene, чтобы вернуть 10 + m результатов, поскольку определенный процент от возвращаемого набора будет исключен, поскольку они являются записями, принадлежащими одному нить. Вам нужно будет включить некоторую дополнительную логику, которая будет запускать другой поиск Lucene, если дедуплицированный набор <10. </p>
Это то, что делает проект Nutch при свертывании нескольких результатов поиска, принадлежащих одному домену.