]> git.openstreetmap.org Git - nominatim.git/commitdiff
Merge branch 'master' of http://github.com/twain47/Nominatim
authorSarah Hoffmann <lonvia@denofr.de>
Wed, 8 Aug 2012 20:34:06 +0000 (22:34 +0200)
committerSarah Hoffmann <lonvia@denofr.de>
Wed, 8 Aug 2012 20:34:06 +0000 (22:34 +0200)
Conflicts:
lib/lib.php
lib/log.php
lib/template/address-jsonv2.php
settings/settings.php
sql/functions.sql
sql/indices.src.sql
sql/tables.sql
utils/setup.php
utils/specialphrases.php
website/reverse.php

1  2 
lib/log.php
settings/settings.php
sql/indices.src.sql
sql/partitions.src.sql
sql/tables.sql
utils/setup.php
utils/specialphrases.php
website/reverse.php
website/search.php

diff --cc lib/log.php
Simple merge
index ef2ebe4ee6de6afea753329fe55dcfe5b46c36b3,4ebc199d1357cc12238e043e4ea4b3ba8adf8f4c..df9652117b911ca11d881c579a744716d172c95f
@@@ -7,23 -7,22 +7,24 @@@
        @define('CONST_Database_DSN', 'pgsql://@/nominatim');
  
        // Paths
 -      @define('CONST_Postgresql_Version', '9.1');
 +      @define('CONST_Postgresql_Version', '9.0');
        @define('CONST_Path_Postgresql_Contrib', '/usr/share/postgresql/'.CONST_Postgresql_Version.'/contrib');
        @define('CONST_Path_Postgresql_Postgis', CONST_Path_Postgresql_Contrib.'/postgis-1.5');
-     @define('CONST_Osm2pgsql_Binary', CONST_BasePath.'/../osm2pgsql/osm2pgsql');
-     @define('CONST_Osmosis_Binary', CONST_BasePath.'/../osmosis-0.40.1/bin/osmosis');
+       @define('CONST_Osm2pgsql_Binary', CONST_BasePath.'/osm2pgsql/osm2pgsql');
 -      @define('CONST_Osmosis_Binary', CONST_BasePath.'/osmosis-0.40.1/bin/osmosis');
++      @define('CONST_Osmosis_Binary', CONST_BasePath.'/../osmosis-0.40.1/bin/osmosis');
  
        // Website settings
 -      @define('CONST_ClosedForIndexing', false);
 -      @define('CONST_ClosedForIndexingExceptionIPs', '');
        @define('CONST_BlockedIPs', '');
 +      @define('CONST_IPBanFile', CONST_BasePath.'/settings/ip_blocks');
 +      @define('CONST_WhitelistedIPs', '');
 +      @define('CONST_BlockedUserAgents', '');
 +      @define('CONST_BlockReverseMaxLoad', 15);
+       @define('CONST_BulkUserIPs', '');
  
 -      @define('CONST_Website_BaseURL', 'http://'.php_uname('n').'/');
 +      @define('CONST_Website_BaseURL', 'http://nominatim.openstreetmap.org/');
        @define('CONST_Tile_Default', 'Mapnik');
  
 -      @define('CONST_Default_Language', 'xx');
 +      @define('CONST_Default_Language', 'en');
        @define('CONST_Default_Lat', 20.0);
        @define('CONST_Default_Lon', 0.0);
        @define('CONST_Default_Zoom', 2);
index c586dd286520ae5e69d035a2017cb58b7c8a758f,5e6ccd12e3b5431e5b9ac2664f7e6d1fd1073144..2e5dde71e66ecb25b0cd6b3be3a4ef51247464f0
@@@ -1,28 -1,30 +1,30 @@@
 -CREATE INDEX idx_word_word_id on word USING BTREE (word_id);
+ -- Indices used only during search and update.
+ -- These indices are created only after the indexing process is done.
 +CREATE INDEX idx_word_word_id on word USING BTREE (word_id) TABLESPACE ssd;
  
- CREATE INDEX search_name_name_vector_idx ON search_name USING GIN (name_vector) WITH (fastupdate = off) TABLESPACE ssd;
- CREATE INDEX searchnameplacesearch_search_nameaddress_vector_idx ON search_name USING GIN (nameaddress_vector) WITH (fastupdate = off) TABLESPACE ssd;
 -CREATE INDEX idx_search_name_nameaddress_vector ON search_name USING GIN (nameaddress_vector) WITH (fastupdate = off);
 -CREATE INDEX idx_search_name_name_vector ON search_name USING GIN (name_vector) WITH (fastupdate = off);
 -CREATE INDEX idx_search_name_centroid ON search_name USING GIST (centroid);
++CREATE INDEX idx_search_name_nameaddress_vector ON search_name USING GIN (nameaddress_vector) WITH (fastupdate = off) TABLESPACE ssd;
++CREATE INDEX idx_search_name_name_vector ON search_name USING GIN (name_vector) WITH (fastupdate = off) TABLESPACE ssd;
 +CREATE INDEX idx_search_name_centroid ON search_name USING GIST (centroid) TABLESPACE ssd;
  
 -CREATE INDEX idx_place_addressline_address_place_id on place_addressline USING BTREE (address_place_id);
 +CREATE INDEX idx_place_addressline_address_place_id on place_addressline USING BTREE (address_place_id) TABLESPACE ssd;
  
 -CREATE INDEX idx_place_boundingbox_place_id on place_boundingbox USING BTREE (place_id);
 -CREATE INDEX idx_place_boundingbox_outline ON place_boundingbox USING GIST (outline);
 +CREATE INDEX idx_place_boundingbox_place_id on place_boundingbox USING BTREE (place_id) TABLESPACE ssd;
 +CREATE INDEX idx_place_boundingbox_outline ON place_boundingbox USING GIST (outline) TABLESPACE ssd;
  
  DROP INDEX IF EXISTS idx_placex_rank_search;
 -CREATE INDEX idx_placex_rank_search ON placex USING BTREE (rank_search);
 -CREATE INDEX idx_placex_rank_address ON placex USING BTREE (rank_address);
 -CREATE INDEX idx_placex_pendingsector ON placex USING BTREE (rank_search,geometry_sector) where indexed_status > 0;
 -CREATE INDEX idx_placex_parent_place_id ON placex USING BTREE (parent_place_id) where parent_place_id IS NOT NULL;
 -CREATE INDEX idx_placex_interpolation ON placex USING BTREE (geometry_sector) where indexed_status > 0 and class='place' and type='houses';
 -CREATE INDEX idx_location_area_country_place_id ON location_area_country USING BTREE (place_id);
 +CREATE INDEX idx_placex_rank_search ON placex USING BTREE (rank_search) TABLESPACE ssd;
 +CREATE INDEX idx_placex_rank_address ON placex USING BTREE (rank_address) TABLESPACE ssd;
 +CREATE INDEX idx_placex_pendingsector ON placex USING BTREE (rank_search,geometry_sector) TABLESPACE ssd where indexed_status > 0;
 +CREATE INDEX idx_placex_parent_place_id ON placex USING BTREE (parent_place_id) TABLESPACE ssd where parent_place_id IS NOT NULL;
 +CREATE INDEX idx_placex_interpolation ON placex USING BTREE (geometry_sector) TABLESPACE ssd where indexed_status > 0 and class='place' and type='houses';
- CREATE INDEX idx_placex_sector ON placex USING BTREE (geometry_sector,rank_address,osm_type,osm_id) TABLESPACE ssd;
 +CREATE INDEX idx_location_area_country_place_id ON location_area_country USING BTREE (place_id) TABLESPACE ssd;
  
 -CREATE INDEX idx_search_name_country_centroid ON search_name_country USING GIST (centroid);
 -CREATE INDEX idx_search_name_country_nameaddress_vector ON search_name_country USING GIN (nameaddress_vector) WITH (fastupdate = off);
 +CREATE INDEX idx_search_name_country_centroid ON search_name_country USING GIST (centroid) TABLESPACE ssd;
 +CREATE INDEX idx_search_name_country_nameaddress_vector ON search_name_country USING GIN (nameaddress_vector) WITH (fastupdate = off) TABLESPACE ssd;
  
  -- start
- CREATE INDEX idx_search_name_-partition-_nameaddress_vector ON search_name_-partition- USING GIN (nameaddress_vector) WITH (fastupdate = off) TABLESPACE ssd;
 -CREATE INDEX idx_location_property_-partition-_centroid ON location_property_-partition- USING GIST (centroid);
 +CREATE INDEX idx_location_property_-partition-_centroid ON location_property_-partition- USING GIST (centroid) TABLESPACE ssd;
  -- end
+ CREATE UNIQUE INDEX idx_place_osm_unique on place using btree(osm_id,osm_type,class,type);
index 9c078980b84c65fb65d2925ae42c90dd9e0643ad,324f35bbd22ce8777a735d9d51e93e0a8571d560..3fb7962c4e5d3a62bb0d6ca8e6b641ed10aeb2a0
@@@ -13,12 -13,23 +13,23 @@@ create type nearfeature as 
    isguess boolean
  );
  
+ drop type nearfeaturecentr cascade;
+ create type nearfeaturecentr as (
+   place_id BIGINT,
+   keywords int[],
+   rank_address integer,
+   rank_search integer,
+   distance float,
+   isguess boolean,
+   centroid GEOMETRY
+ );
  CREATE TABLE location_area_country () INHERITS (location_area_large);
 -CREATE INDEX idx_location_area_country_geometry ON location_area_country USING GIST (geometry);
 +CREATE INDEX idx_location_area_country_geometry ON location_area_country USING GIST (geometry) TABLESPACE ssd;
  
  CREATE TABLE search_name_country () INHERITS (search_name_blank);
 -CREATE INDEX idx_search_name_country_place_id ON search_name_country USING BTREE (place_id);
 -CREATE INDEX idx_search_name_country_name_vector ON search_name_country USING GIN (name_vector) WITH (fastupdate = off);
 +CREATE INDEX idx_search_name_country_place_id ON search_name_country USING BTREE (place_id) TABLESPACE ssd;
 +CREATE INDEX idx_search_name_country_name_vector ON search_name_country USING GIN (name_vector) WITH (fastupdate = off) TABLESPACE ssd;
  
  -- start
  CREATE TABLE location_area_large_-partition- () INHERITS (location_area_large);
diff --cc sql/tables.sql
index e56af7f600b48bc0e1d1cfe1f2a93d1b793a3817,d5cf7bcd47eb0755ecbd2dcfdae9f2fac6092fe0..a0ad66a8353d814754d5cd6e576c976865f8b7c1
@@@ -195,13 -198,17 +184,17 @@@ CREATE TABLE placex 
    importance FLOAT,
    indexed_status INTEGER,
    indexed_date TIMESTAMP,
-   geometry_sector INTEGER
+   wikipedia TEXT, -- calculated wikipedia article name (language:title)
+   geometry_sector INTEGER,
+   calculated_country_code varchar(2)
 -  );
 +  ) TABLESPACE ssd;
- SELECT AddGeometryColumn('placex', 'geometry', 4326, 'GEOMETRY', 2);
+ SELECT AddGeometryColumn('placex', 'centroid', 4326, 'GEOMETRY', 2);
 -CREATE UNIQUE INDEX idx_place_id ON placex USING BTREE (place_id);
 -CREATE INDEX idx_placex_osmid ON placex USING BTREE (osm_type, osm_id);
 -CREATE INDEX idx_placex_linked_place_id ON placex USING BTREE (linked_place_id);
 -CREATE INDEX idx_placex_rank_search ON placex USING BTREE (rank_search, geometry_sector);
 -CREATE INDEX idx_placex_geometry ON placex USING GIST (geometry);
 -CREATE INDEX idx_placex_adminname on placex USING BTREE (make_standard_name(name->'name'),rank_search) WHERE osm_type='N' and rank_search < 26;
 +CREATE UNIQUE INDEX idx_place_id ON placex USING BTREE (place_id) TABLESPACE ssd;
 +CREATE INDEX idx_placex_osmid ON placex USING BTREE (osm_type, osm_id) TABLESPACE ssd;
++CREATE INDEX idx_placex_linked_place_id ON placex USING BTREE (linked_place_id) TABLESPACE ssd;
 +CREATE INDEX idx_placex_rank_search ON placex USING BTREE (rank_search, geometry_sector) TABLESPACE ssd;
 +CREATE INDEX idx_placex_geometry ON placex USING GIST (geometry) TABLESPACE ssd;
++CREATE INDEX idx_placex_adminname on placex USING BTREE (make_standard_name(name->'name'),rank_search) TABLESPACE ssd WHERE osm_type='N' and rank_search < 26;
  
  --CREATE INDEX idx_placex_indexed ON placex USING BTREE (indexed);
  
diff --cc utils/setup.php
index 871f6e0488b4eec9d1dd1a9d205ebad7b6e26a9d,c842ba33e40b927b2ff1ab23fc0770dcb608b236..663a9694c610b4ccdc2a40a0596c9df09777b592
                $bDidSomething = true;
  
                $osm2pgsql = CONST_Osm2pgsql_Binary;
-               if (!file_exists($osm2pgsql)) fail("please download and build osm2pgsql");
-               passthru($osm2pgsql.' --tablespace-slim-index data --tablespace-main-index ssd --tablespace-main-data data --tablespace-slim-data data -lsc -O gazetteer -C 12000 --hstore -d '.$aDSNInfo['database'].' '.$aCMDResult['osm-file']);
+               if (!file_exists($osm2pgsql))
+               {
+                       echo "Please download and build osm2pgsql.\nIf it is already installed, check the path in your local settings (settings/local.php) file.\n";
+                       fail("osm2pgsql not found in '$osm2pgsql'");
+               }
++              $osm2pgsql .= ' --tablespace-slim-index ssd --tablespace-main-index ssd --tablespace-main-data ssd --tablespace-slim-data ssd';
+               $osm2pgsql .= ' -lsc -O gazetteer --hstore';
 -              $osm2pgsql .= ' -C '.$iCacheMemory;
++              $osm2pgsql .= ' -C 16000';
+               $osm2pgsql .= ' -d '.$aDSNInfo['database'].' '.$aCMDResult['osm-file'];
+               passthruCheckReturn($osm2pgsql);
  
                $oDB =& getDB();
                $x = $oDB->getRow('select * from place limit 1');
index 550f0c90ab4ba1f33e8e57505e6b776fc04788a1,4381bdfa37b89f6f2f70c7e76c007f11b30773eb..94aa74d8f1d5b03d8f21f71ac1c76fd58129000e
  
                foreach($aPairs as $aPair)
                {
+                       if ($aPair[0] == 'yes') continue;
+                       if ($aPair[1] == 'yes') continue;
+                       if ($aPair[0] == 'highway') continue;
                        if ($aPair[1] == 'highway') continue;
  
 +                      echo "drop table if exists place_classtype_".pg_escape_string($aPair[0])."_".pg_escape_string($aPair[1]).";\n";
                        echo "create table place_classtype_".pg_escape_string($aPair[0])."_".pg_escape_string($aPair[1])." as ";
                        echo "select place_id as place_id,st_centroid(geometry) as centroid from placex where ";
                        echo "class = '".pg_escape_string($aPair[0])."' and type = '".pg_escape_string($aPair[1])."';\n";
Simple merge
Simple merge