У меня есть поля списка фасетов, добавленные в цикл, эти циклы добавляют все фасеты, извлеченные из результатов solr faceit, в которых есть повторяющаяся запись в окончательном поле фейсайта 'allFacetFields',
[
movie-1:[
manufaturer(10),
producers(5),
actors(12)
],
movie-2:[
manufaturer(10),
producers(5),
actors(12)
],
movie-3:[
manufaturer(10),
producers(5),
actors(12)
],
movie-1:[
manufaturer(3),
producers(2),
actors(2)
],
movie-2:[
manufaturer(4),
producers(7),
actors(6)
],
]
код ниже получает все поля faceit из запроса solr из цикла и добавляет их в allFacetFields из каждого facetFieldIterator
List<FacetField> allFacetFields = new ArrayList<FacetField>();
for (Map.Entry<String, Integer> entry : coresResult.entrySet()) {
List<FacetField> coreFacets = respForCores.getFacetFields();
Iterator<FacetField> facetFieldIterator = coreFacets.iterator();
while(facetFieldIterator.hasNext()){
allFacetFields.add(facetFieldIterator.next());
}
}
как проверить дублированный фасет перед добавлением его в поле финального фасета allFacetFields и объединить результаты следующим образом:
[
movie-1:[
manufaturer(13),
producers(7),
actors(14)
],
movie-2:[
manufaturer(14),
producers(12),
actors(18)
],
movie-3:[
manufaturer(10),
producers(5),
actors(12)
]
]