/[projects]/dao/DaoAdresseService/src/main/java/dk/daoas/daoadresseservice/AddressSearch.java
ViewVC logotype

Diff of /dao/DaoAdresseService/src/main/java/dk/daoas/daoadresseservice/AddressSearch.java

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2598 by torben, Mon Jul 13 10:32:11 2015 UTC revision 2758 by torben, Tue Oct 27 14:40:44 2015 UTC
# Line 42  public class AddressSearch { Line 42  public class AddressSearch {
42                    
43          private DataStatisticsBean stats = new DataStatisticsBean();          private DataStatisticsBean stats = new DataStatisticsBean();
44                    
45          ServiceConfig config;          private DatabaseLayer db;
46            
47                    
48          StreetnameHelper levenshteinHelper;          StreetnameHelper levenshteinHelper;
49          StreetnameHelper googleHelper;          StreetnameHelper googleHelper;
50          StreetnameHelper osmHelper;          StreetnameHelper osmHelper;
51                    
52                    
53          public AddressSearch(ServiceConfig config) {          public AddressSearch(DatabaseLayer db, ServiceConfig config) {
54                  this.config = config;                  
55                    this.db = db;
56                                    
57                  levenshteinHelper = new LevenshteinStreetnameHelper( this );                  levenshteinHelper = new LevenshteinStreetnameHelper( this );
58                  googleHelper = new GoogleStreetnameHelper( config );                  googleHelper = new GoogleStreetnameHelper( config );
59                  osmHelper = new OSMStreetnameHelper( config );                  osmHelper = new OSMStreetnameHelper( config );
60          }          }
61                    
62            public Address getAddressSafe(int gadeid, String husnr)  throws Exception{
63                    SearchResult result = new SearchResult();
64                    
65                    Map<String,Address> gade = searchGadeidentAdresser.get(gadeid);
66                    
67                    if (gade == null) {
68                            throw new Exception("GadeID ikke fundet");
69                    }
70                    
71                    Address addr = gade.get("husnr");
72                    
73                    if (addr == null) {
74                            throw new Exception("Adresse ikke ikke fundet");
75                    }
76                                    
77                    return addr;
78            }
79            
80                    
81          public SearchResult search(String postnrStr, String adresse)  {          public SearchResult search(String postnrStr, String adresse)  {
82                                    
# Line 250  public class AddressSearch { Line 270  public class AddressSearch {
270                  long start1 = System.currentTimeMillis();                  long start1 = System.currentTimeMillis();
271                  System.out.println("Build -- stage 1");                  System.out.println("Build -- stage 1");
272                                    
273                  alleAdresser = DatabaseLayer.getAllAdresses();                  alleAdresser = db.getAllAdresses();
274                                    
275                                    
276                  /* Mapper mellem db Row ID og adresse noden */                  /* Mapper mellem db Row ID og adresse noden */
# Line 301  public class AddressSearch { Line 321  public class AddressSearch {
321                  System.out.println("Build -- stage 2 alias tabel");                  System.out.println("Build -- stage 2 alias tabel");
322                                    
323                  int vaskCount = 0;                  int vaskCount = 0;
324                  List<AliasBean> aliasList = DatabaseLayer.getAliasList();                  List<AliasBean> aliasList = db.getAliasList();
325                  for (AliasBean alias : aliasList) {                  for (AliasBean alias : aliasList) {
326                          Map<String,Integer> postnrVeje = searchPostnrVejnavnGadeid.get(alias.postnr);                          Map<String,Integer> postnrVeje = searchPostnrVejnavnGadeid.get(alias.postnr);
327                                                    
# Line 338  public class AddressSearch { Line 358  public class AddressSearch {
358                  DeduplicateHelper<String> ruteHelper = new DeduplicateHelper<String>();                  DeduplicateHelper<String> ruteHelper = new DeduplicateHelper<String>();
359                  DeduplicateHelper<String> korelisteHelper = new DeduplicateHelper<String>();                  DeduplicateHelper<String> korelisteHelper = new DeduplicateHelper<String>();
360                                    
361                  List<ExtendedBean> extDao = DatabaseLayer.getExtendedAdresslist();                  List<ExtendedBean> extDao = db.getExtendedAdresslist();
362                  for (ExtendedBean eb : extDao) {                  for (ExtendedBean eb : extDao) {
363                                                    
364                          Address orgAddress = idAddressMap.get(eb.orgId);                                                  Address orgAddress = idAddressMap.get(eb.orgId);                        
# Line 412  public class AddressSearch { Line 432  public class AddressSearch {
432                  System.out.println("Build, stage3 elapsed: " + (start4-start3) );                  System.out.println("Build, stage3 elapsed: " + (start4-start3) );
433                  System.out.println("Build -- stage 4 - 100pct");                  System.out.println("Build -- stage 4 - 100pct");
434                                    
435                  Map<Short,HundredePctBean> hundredePct = DatabaseLayer.get100PctList();                  Map<Short,HundredePctBean> hundredePct = db.get100PctList();
436                  for (Address addr : alleAdresser) {                  for (Address addr : alleAdresser) {
437                          if (addr.daekningsType != DaekningsType.DAEKNING_IKKEDAEKKET) {                                                  if (addr.daekningsType != DaekningsType.DAEKNING_IKKEDAEKKET) {                        
438                                  continue;                                  continue;
# Line 476  public class AddressSearch { Line 496  public class AddressSearch {
496                  return stats;                  return stats;
497          }          }
498                    
499            public DatabaseLayer getDatabaseLayer() {
500                    return db;
501            }
502            
503          public void clear() {          public void clear() {
504                  searchPostnrVejnavnGadeid.clear();                  searchPostnrVejnavnGadeid.clear();
505                  searchGadeidentAdresser.clear();                  searchGadeidentAdresser.clear();
# Line 539  public class AddressSearch { Line 563  public class AddressSearch {
563                  return result;                  return result;
564          }          }
565                    
566            public List<Address> get100PctAddresses() {
567                    List<Address> result = new ArrayList<Address>(120000);
568                    for (Address a : alleAdresser) {
569                            if ( a.daekningsType == DaekningsType.DAEKNING_100PCT) {
570                                    result.add(a);
571                            }
572                    }
573                    Collections.sort(result );
574                    return result;
575            }
576            
577          ///////////////////////////////////////////////////////////          ///////////////////////////////////////////////////////////
578          private String calculateExtendedBkKoreliste(ExtendedBean eb, Address orgAddress, Address targetAddress) {          private String calculateExtendedBkKoreliste(ExtendedBean eb, Address orgAddress, Address targetAddress) {
579                  String inject;                  String inject;
# Line 632  public class AddressSearch { Line 667  public class AddressSearch {
667                  aliasSet.add(vejnavn.replace("christians", "chr") );                  aliasSet.add(vejnavn.replace("christians", "chr") );
668                  aliasSet.add(vejnavn.replace("kristian", "kr") );                  aliasSet.add(vejnavn.replace("kristian", "kr") );
669                  aliasSet.add(vejnavn.replace("kristians", "kr") );                  aliasSet.add(vejnavn.replace("kristians", "kr") );
670    
671                    aliasSet.add(vejnavn.replace("mylius", "myl") );
672                    aliasSet.add(vejnavn.replace("myl", "mylius") );
673                                    
674                                    
675                  // alternative stavninger                  // alternative stavninger
# Line 697  public class AddressSearch { Line 735  public class AddressSearch {
735    
736                  aliasSet.add(vejnavn.replace("boulevard", "boule") );                  aliasSet.add(vejnavn.replace("boulevard", "boule") );
737                  aliasSet.add(vejnavn.replace("boule", "boulevard") );                  aliasSet.add(vejnavn.replace("boule", "boulevard") );
738                                    
739                    aliasSet.add(vejnavn.replace("kronborg", "krbg") ); //Krbg ladegårdsvej, 3000
740                    aliasSet.add(vejnavn.replace("krbg", "kronborg") );
741                                    
742                  // Opbyg æøå varianter over alle fundne aliaser                  // Opbyg æøå varianter over alle fundne aliaser
743                                    
# Line 745  public class AddressSearch { Line 786  public class AddressSearch {
786                    
787          public Set<Entry<String,Integer>> getVejnavne(short postnr) {          public Set<Entry<String,Integer>> getVejnavne(short postnr) {
788                  Map<String,Integer> map = searchPostnrVejnavnGadeid.get(postnr);                  Map<String,Integer> map = searchPostnrVejnavnGadeid.get(postnr);
789                  TreeMap<String,Integer> newMap = new TreeMap<String,Integer>();                  
790                  for (Entry<String,Integer> entry : map.entrySet() ) {                  TreeMap<String,Integer> newMap = new TreeMap<String,Integer>( map );//Lav et nyt TreeMap for at sikre sortering
                         newMap.put(entry.getKey(), entry.getValue());  
                 }  
791                                    
792                  return newMap.entrySet();                  return newMap.entrySet();
793          }          }

Legend:
Removed from v.2598  
changed lines
  Added in v.2758

  ViewVC Help
Powered by ViewVC 1.1.20