in core/src/main/java/org/apache/sdap/mudrod/utils/LinkageTriple.java [85:133]
public static void insertTriples(ESDriver es, List<LinkageTriple> triples, String index, String type, Boolean bTriple, boolean bSymmetry) throws IOException {
es.deleteType(index, type);
if (bTriple) {
LinkageTriple.addMapping(es, index, type);
}
if (triples == null) {
return;
}
es.createBulkProcessor();
for (LinkageTriple triple : triples) {
XContentBuilder jsonBuilder = jsonBuilder().startObject();
if (bTriple) {
jsonBuilder.field("concept_A", triple.keyA);
jsonBuilder.field("concept_B", triple.keyB);
} else {
jsonBuilder.field("keywords", triple.keyA + "," + triple.keyB);
}
double tripleWeight = 0;
try {
tripleWeight = Double.parseDouble(df.format(triple.weight));
} catch (NumberFormatException e) {
// do nothing, triple weight is 0 as it cannot be parsed
}
jsonBuilder.field("weight", tripleWeight);
jsonBuilder.endObject();
IndexRequest ir = new IndexRequest(index, type).source(jsonBuilder);
es.getBulkProcessor().add(ir);
if (bTriple && bSymmetry) {
XContentBuilder symmetryJsonBuilder = jsonBuilder().startObject();
symmetryJsonBuilder.field("concept_A", triple.keyB);
symmetryJsonBuilder.field("concept_B", triple.keyA);
symmetryJsonBuilder.field("weight", Double.parseDouble(df.format(triple.weight)));
symmetryJsonBuilder.endObject();
IndexRequest symmetryir = new IndexRequest(index, type).source(symmetryJsonBuilder);
es.getBulkProcessor().add(symmetryir);
}
}
es.destroyBulkProcessor();
}