Loading src/main/java/es/redmic/es/tools/distributions/species/repository/RTaxonDistributionRepository.java +8 −4 Original line number Diff line number Diff line Loading @@ -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; } Loading src/test/resources/queryfactory/tools/distribution/distributionQuery.json +1 −1 Original line number Diff line number Diff line Loading @@ -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], Loading src/test/resources/scripts/aggs-distribution.txt +4 −4 Original line number Diff line number Diff line Loading @@ -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); Loading Loading
src/main/java/es/redmic/es/tools/distributions/species/repository/RTaxonDistributionRepository.java +8 −4 Original line number Diff line number Diff line Loading @@ -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; } Loading
src/test/resources/queryfactory/tools/distribution/distributionQuery.json +1 −1 Original line number Diff line number Diff line Loading @@ -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], Loading
src/test/resources/scripts/aggs-distribution.txt +4 −4 Original line number Diff line number Diff line Loading @@ -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); Loading