--- dao/DaoAdresseService/src/dk/daoas/daoadresseservice/AdressSearch.java 2015/02/15 14:17:03 2300 +++ dao/DaoAdresseService/src/dk/daoas/daoadresseservice/AdressSearch.java 2015/02/15 17:05:07 2304 @@ -23,6 +23,8 @@ List
alleAdresser; + Map helperCache; + Map hundredePct; @@ -31,6 +33,7 @@ int postnr=0; boolean google = false; + boolean osm = false; try { postnr = Integer.parseInt(postnrStr); @@ -53,12 +56,37 @@ } Long gadeident = postnrVeje.get(vasketVejnavn); + + if ( gadeident == null) { + gadeident = helperCache.get(vasketVejnavn); + } + + if ( gadeident == null) { String googleVej = GeocodeHelper.googleHelper(postnr, split.vej ); + google = true; + if (googleVej != null) { String googleVasket = AddressUtils.vaskVejnavn( googleVej ); gadeident = postnrVeje.get(googleVasket); - google = true; + + if (gadeident != null) { + helperCache.put(vasketVejnavn, gadeident); + } + } + } + + if ( gadeident == null) { + String osmVej = GeocodeHelper.openstreetmapHelper(postnr, split.vej ); + osm = true; + + if (osmVej != null) { + String osmVasket = AddressUtils.vaskVejnavn( osmVej ); + gadeident = postnrVeje.get(osmVasket); + + if (gadeident != null) { + helperCache.put(vasketVejnavn, gadeident); + } } } @@ -86,6 +114,7 @@ SearchResult res = new SearchResult(addr); res.google = google; + res.osm = osm; return res; } @@ -93,7 +122,8 @@ public void buildSearchStructures() throws SQLException{ searchPostnrVejnavnGadeid = new HashMap>(); searchGadeidentAdresser = new HashMap>(); - + helperCache = new ConcurrentHashMap(); + System.out.println("Build -- stage 1"); alleAdresser = DatabaseLayer.getAllAdresses();