Commit d346a1a5 authored by Noel Alonso's avatar Noel Alonso
Browse files

Adapta parser de resultados de script + tests

parent a9b5bf51
Loading
Loading
Loading
Loading
+8 −4
Original line number Diff line number Diff line
@@ -143,10 +143,14 @@ public class RTaxonDistributionRepository extends RBaseESRepository<Distribution
		List<Object> ret = new ArrayList<>();

		for (SearchHit obj : result) {
			Map<String, Object> properties = (Map<String, Object>) obj.getSourceAsMap().get("properties");
			Integer registerCount = (Integer) properties.get("registerCount");
			if (registerCount != null && registerCount > 0)
				ret.add(obj.getSourceAsMap());
			Map<String, Object> item = obj.getSourceAsMap();

			Map<String,Integer> fields = (Map<String, Integer>) obj.getFields().get("taxons").getValues().get(0);
			Integer registerCount = fields.get("registerCount");
			if (registerCount != null && registerCount > 0) {
				item.put("properties", fields);
				ret.add(item);
			}
		}
		return ret;
	}
+1 −1
Original line number Diff line number Diff line
@@ -97,7 +97,7 @@
	"script_fields": {
		"taxons": {
			"script": {
				"source": "boolean filterByConfidence(def confidence, def params) {\n\tparams.confidences.contains(confidence);\n}\nboolean filterByPathTaxon(def pathTaxon, def params) {\n\tparams.taxons.contains(pathTaxon);\n}\n\nboolean filterByMisidentification(def taxon, def params) {\n\n\tfor (reg in taxon.registers) {\n\t\tif (params.taxons.contains(reg.misidentification))\n\t\t\treturn true;\n\t}\n\treturn false;\n}\n\ndef getRegisters(def taxon, def params) {\n\treturn [\"registers\": taxon.registers.findAll(reg -> filterByConfidence(reg.confidence, params))];\n}\n\nvoid checkRegister(def result, def taxon, def params) {\n\tif (filterByPathTaxon(taxon.path, params) || filterByPathTaxon(taxon.equivalent, params) || filterByMisidentification(taxon, params)) {\n\t\t\tdef taxonRegisters = getRegisters(taxon, params);\n\n\t\t\tif (taxonRegisters.registers.size() > 0) {\n\t\t\t\tresult['properties.registerCount'] += taxon.registers.size();\n\t\t\t\tresult['properties.taxonCount'] ++;\n\t\t\t}\n\t}\n}\n\nMap result = new HashMap();\n\nresult['properties.registerCount'] = 0;\nresult['properties.taxonCount'] = 0;\n\nfor (tax in params._source.properties.taxons) {\n\tcheckRegister(result, tax, params);\n}\n\nreturn result;\n",
				"source": "boolean filterByConfidence(def confidence, def params) {\n\tparams.confidences.contains(confidence);\n}\nboolean filterByPathTaxon(def pathTaxon, def params) {\n\tparams.taxons.contains(pathTaxon);\n}\n\nboolean filterByMisidentification(def taxon, def params) {\n\n\tfor (reg in taxon.registers) {\n\t\tif (params.taxons.contains(reg.misidentification))\n\t\t\treturn true;\n\t}\n\treturn false;\n}\n\ndef getRegisters(def taxon, def params) {\n\treturn [\"registers\": taxon.registers.findAll(reg -> filterByConfidence(reg.confidence, params))];\n}\n\nvoid checkRegister(def result, def taxon, def params) {\n\tif (filterByPathTaxon(taxon.path, params) || filterByPathTaxon(taxon.equivalent, params) || filterByMisidentification(taxon, params)) {\n\t\t\tdef taxonRegisters = getRegisters(taxon, params);\n\n\t\t\tif (taxonRegisters.registers.size() > 0) {\n\t\t\t\tresult['registerCount'] += taxon.registers.size();\n\t\t\t\tresult['taxonCount'] ++;\n\t\t\t}\n\t}\n}\n\nMap result = new HashMap();\n\nresult['registerCount'] = 0;\nresult['taxonCount'] = 0;\n\nfor (tax in params._source.properties.taxons) {\n\tcheckRegister(result, tax, params);\n}\n\nreturn result;\n",
				"lang": "painless",
				"params": {
					"confidences": [4],
+4 −4
Original line number Diff line number Diff line
@@ -23,16 +23,16 @@ void checkRegister(def result, def taxon, def params) {
			def taxonRegisters = getRegisters(taxon, params);

			if (taxonRegisters.registers.size() > 0) {
				result['properties.registerCount'] += taxon.registers.size();
				result['properties.taxonCount'] ++;
				result['registerCount'] += taxon.registers.size();
				result['taxonCount'] ++;
			}
	}
}

Map result = new HashMap();

result['properties.registerCount'] = 0;
result['properties.taxonCount'] = 0;
result['registerCount'] = 0;
result['taxonCount'] = 0;

for (tax in params._source.properties.taxons) {
	checkRegister(result, tax, params);