public static void insertTriples()

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();
  }