import pl.edu.icm.synat.api.services.index.fulltext.FulltextIndexService import pl.edu.icm.synat.api.services.index.fulltext.query.FulltextSearchQuery import pl.edu.icm.synat.api.services.index.fulltext.query.criteria.SearchOperator import pl.edu.icm.synat.api.services.index.fulltext.query.criteria.impl.FieldCriterion import pl.edu.icm.synat.api.services.index.fulltext.query.format.FieldRequest import pl.edu.icm.synat.api.services.index.fulltext.query.format.ResultsFormat import pl.edu.icm.synat.api.services.profile.ProfileService import pl.edu.icm.synat.api.services.usercatalog.UserCatalog import pl.edu.icm.synat.logic.index.collection.content.CollectionContentIndexFieldConstants import pl.edu.icm.synat.logic.index.publication.CollectionIndexFieldConstants import pl.edu.icm.synat.logic.services.collection.CollectionService import pl.edu.icm.synat.logic.services.messaging.MailMessagingService userCatalog = serviceUtils.getService('UserCatalog', UserCatalog.class) mailService = serviceUtils.getService('mail-messaging-service', MailMessagingService.class) profileService = serviceUtils.getService('profile-service', ProfileService.class) collectionService = serviceUtils.getService('collection-service', CollectionService.class) collectionContentIndex = serviceUtils.getService('CollectionContentIndex', FulltextIndexService.class) resultsFormat = new ResultsFormat(new FieldRequest(CollectionIndexFieldConstants.FIELD_EXID, true)); searchQuery = new FulltextSearchQuery(0, 0, resultsFormat, new FieldCriterion(CollectionContentIndexFieldConstants.FIELD_ALL_METADATA, "*", SearchOperator.AND)); results = collectionContentIndex.performSearch(searchQuery).getResults(); println "SIZE " + results.size(); skasowano = 0; for(result in results){ collId = result.getDocId().split("_#_")[0] if(collectionService.fetchCollection(collId)!=null){ println "kolekcja " + collId; docId = result.getDocId().split("_#_")[1] println "dokument " + docId; docs = collectionService.getCollectionContentIds(collId); if(!docs.contains(docId)){ collectionContentIndex.deleteDocuments(result.getDocId()); println "WYWALONA Z INDEKSU " + docId; skasowano++; } } } println "DELETED " + skasowano; println "TOTAL " + results.size();