Объединить список дубликатов Faceit-полей в Solr, используя Java - PullRequest
0 голосов
/ 31 мая 2019

У меня есть поля списка фасетов, добавленные в цикл, эти циклы добавляют все фасеты, извлеченные из результатов 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)
]
]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...