У меня есть схема Solr с версионированием. Идентификаторы содержат номер версии, поэтому существующие документы сохраняются, а новые индексируются. Образец содержания:
id = foo1
name = foo
version = 1
data = x
id = foo2
name = foo
version = 2
data = y
id = bar1
name = bar
version = 1
data = x
Существует два различных сценария поиска: поиск во всех версиях или поиск только в последних. Первый тривиален, но как реализовать поиск в поле data
только последних версий каждого name
? В приведенном выше примере я хочу найти «x» в последнем и ожидаю, что попаду только «bar1».
Я надеялся найти решение с помощью http://wiki.apache.org/solr/FieldCollapsing, но если я ищу «x» с помощью group.field=name
, Solr сгруппирует после поиска, дав мне версию 1 из двух названий выше. Мне нужно, чтобы он работал больше как запрос фильтра.