Project

General

Profile

« Previous | Next » 

Revision 57925

View differences:

modules/dnet-mapreduce-jobs/trunk/src/main/java/eu/dnetlib/data/mapreduce/hbase/openorgs/GenerateSimilaritiesReducer.java
32 32

  
33 33
			if (list.size() < 2) { return; }
34 34

  
35
			final String mainId = findMainId(OpenOrgsCommon.OPENORGS_MAIN_PREFIX, list);
35
			final List<String> mainIds = findMainIds(OpenOrgsCommon.OPENORGS_MAIN_PREFIX, list);
36 36

  
37
			if (StringUtils.isNotBlank(mainId)) {
38
				for (final OafEntity o : list) {
39
					if (!o.getOriginalIdList().contains(mainId)) {
40
						context.getCounter("organization", "relations to " + OpenOrgsCommon.OPENORGS_MAIN_PREFIX + "*").increment(1);
41
						emit(newSimilarity(mainId, o), context);
37
			if (mainIds.size() > 10) {
38
				context.getCounter("organization", "groups with n of openOrgsID > 10").increment(1);
39
			} else {
40
				context.getCounter("organization", "groups with n of openOrgsID = " + mainIds.size()).increment(1);
41
			}
42

  
43
			for (final String mainId : mainIds) {
44
				if (StringUtils.isNotBlank(mainId)) {
45
					for (final OafEntity o : list) {
46
						if (!o.getOriginalIdList().contains(mainId)) {
47
							context.getCounter("organization", "relations to " + OpenOrgsCommon.OPENORGS_MAIN_PREFIX + "*").increment(1);
48
							emit(newSimilarity(mainId, o), context);
49
						}
42 50
					}
43 51
				}
44 52
			}
......
48 56
		}
49 57
	}
50 58

  
51
	private String findMainId(final String idPrefix, final List<OafEntity> list) {
59
	private List<String> findMainIds(final String idPrefix, final List<OafEntity> list) {
52 60
		final List<String> valids = new ArrayList<>();
53

  
54 61
		for (final OafEntity e : list) {
55 62
			for (final String id : e.getOriginalIdList()) {
56 63
				if (id.startsWith(idPrefix)) {
......
58 65
				}
59 66
			}
60 67
		}
61
		if (valids.isEmpty()) { return null; }
62

  
63
		valids.sort(String::compareTo);
64

  
65
		return valids.get(0);
68
		return valids;
66 69
	}
67 70

  
68 71
	private void emit(final Similarity simrel, final Context context) {

Also available in: Unified diff