mirror of
https://github.com/osm-search/Nominatim.git
synced 2026-02-26 11:08:13 +00:00
Migration.md: fix typos, improve style consistency and readability.
This commit is contained in:
@@ -11,7 +11,7 @@ SQL statements should be executed from the PostgreSQL commandline. Execute
|
|||||||
### Change of layout of search_name_* tables
|
### Change of layout of search_name_* tables
|
||||||
|
|
||||||
The table need a different index for nearest place lookup. Recreate the
|
The table need a different index for nearest place lookup. Recreate the
|
||||||
indexs suing the following shell script:
|
indexes using the following shell script:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
for table in `psql -d nominatim -c "SELECT tablename FROM pg_tables WHERE tablename LIKE 'search_name_%'" -tA | grep -v search_name_blank`;
|
for table in `psql -d nominatim -c "SELECT tablename FROM pg_tables WHERE tablename LIKE 'search_name_%'" -tA | grep -v search_name_blank`;
|
||||||
@@ -39,13 +39,15 @@ which needs a different database index. Create it with the following SQL command
|
|||||||
|
|
||||||
```sql
|
```sql
|
||||||
CREATE INDEX idx_placex_pendingsector_rank_address
|
CREATE INDEX idx_placex_pendingsector_rank_address
|
||||||
ON placex USING BTREE (rank_address, geometry_sector) where indexed_status > 0;
|
ON placex
|
||||||
|
USING BTREE (rank_address, geometry_sector)
|
||||||
|
WHERE indexed_status > 0;
|
||||||
```
|
```
|
||||||
|
|
||||||
You can then drop the old index with:
|
You can then drop the old index with:
|
||||||
|
|
||||||
```sql
|
```sql
|
||||||
DROP INDEX idx_placex_pendingsector
|
DROP INDEX idx_placex_pendingsector;
|
||||||
```
|
```
|
||||||
|
|
||||||
### Unused index
|
### Unused index
|
||||||
@@ -53,7 +55,7 @@ DROP INDEX idx_placex_pendingsector
|
|||||||
This index has been unused ever since the query using it was changed two years ago. Saves about 12GB on a planet installation.
|
This index has been unused ever since the query using it was changed two years ago. Saves about 12GB on a planet installation.
|
||||||
|
|
||||||
```sql
|
```sql
|
||||||
DROP INDEX idx_placex_geometry_reverse_lookupPoint
|
DROP INDEX idx_placex_geometry_reverse_lookupPoint;
|
||||||
```
|
```
|
||||||
|
|
||||||
### Switching to dotenv
|
### Switching to dotenv
|
||||||
@@ -78,10 +80,14 @@ follows:
|
|||||||
* reimport the tables: `./utils/setup.php --import-wikipedia-articles`
|
* reimport the tables: `./utils/setup.php --import-wikipedia-articles`
|
||||||
* update the functions: `./utils/setup.php --create-functions --enable-diff-updates`
|
* update the functions: `./utils/setup.php --create-functions --enable-diff-updates`
|
||||||
* create a new lookup index:
|
* create a new lookup index:
|
||||||
```
|
```sql
|
||||||
CREATE INDEX idx_placex_wikidata on placex
|
CREATE INDEX idx_placex_wikidata
|
||||||
USING BTREE ((extratags -> 'wikidata'))
|
ON placex
|
||||||
WHERE extratags ? 'wikidata' and class = 'place' and osm_type = 'N' and rank_search < 26
|
USING BTREE ((extratags -> 'wikidata'))
|
||||||
|
WHERE extratags ? 'wikidata'
|
||||||
|
AND class = 'place'
|
||||||
|
AND osm_type = 'N'
|
||||||
|
AND rank_search < 26;
|
||||||
```
|
```
|
||||||
* compute importance: `./utils/update.php --recompute-importance`
|
* compute importance: `./utils/update.php --recompute-importance`
|
||||||
|
|
||||||
@@ -138,7 +144,7 @@ The new format is
|
|||||||
|
|
||||||
### Natural Earth country boundaries no longer needed as fallback
|
### Natural Earth country boundaries no longer needed as fallback
|
||||||
|
|
||||||
```
|
```sql
|
||||||
DROP TABLE country_naturalearthdata;
|
DROP TABLE country_naturalearthdata;
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -164,27 +170,37 @@ following command:
|
|||||||
The reverse algorithm has changed and requires new indexes. Run the following
|
The reverse algorithm has changed and requires new indexes. Run the following
|
||||||
SQL statements to create the indexes:
|
SQL statements to create the indexes:
|
||||||
|
|
||||||
```
|
```sql
|
||||||
CREATE INDEX idx_placex_geometry_reverse_lookupPoint
|
CREATE INDEX idx_placex_geometry_reverse_lookupPoint
|
||||||
ON placex USING gist (geometry)
|
ON placex
|
||||||
WHERE (name is not null or housenumber is not null or rank_address between 26 and 27)
|
USING gist (geometry)
|
||||||
AND class not in ('railway','tunnel','bridge','man_made')
|
WHERE (name IS NOT null or housenumber IS NOT null or rank_address BETWEEN 26 AND 27)
|
||||||
AND rank_address >= 26 AND indexed_status = 0 AND linked_place_id is null;
|
AND class NOT IN ('railway','tunnel','bridge','man_made')
|
||||||
|
AND rank_address >= 26
|
||||||
|
AND indexed_status = 0
|
||||||
|
AND linked_place_id IS null;
|
||||||
CREATE INDEX idx_placex_geometry_reverse_lookupPolygon
|
CREATE INDEX idx_placex_geometry_reverse_lookupPolygon
|
||||||
ON placex USING gist (geometry)
|
ON placex USING gist (geometry)
|
||||||
WHERE St_GeometryType(geometry) in ('ST_Polygon', 'ST_MultiPolygon')
|
WHERE St_GeometryType(geometry) in ('ST_Polygon', 'ST_MultiPolygon')
|
||||||
AND rank_address between 4 and 25 AND type != 'postcode'
|
AND rank_address between 4 and 25
|
||||||
AND name is not null AND indexed_status = 0 AND linked_place_id is null;
|
AND type != 'postcode'
|
||||||
|
AND name is not null
|
||||||
|
AND indexed_status = 0
|
||||||
|
AND linked_place_id is null;
|
||||||
CREATE INDEX idx_placex_geometry_reverse_placeNode
|
CREATE INDEX idx_placex_geometry_reverse_placeNode
|
||||||
ON placex USING gist (geometry)
|
ON placex USING gist (geometry)
|
||||||
WHERE osm_type = 'N' AND rank_search between 5 and 25
|
WHERE osm_type = 'N'
|
||||||
AND class = 'place' AND type != 'postcode'
|
AND rank_search between 5 and 25
|
||||||
AND name is not null AND indexed_status = 0 AND linked_place_id is null;
|
AND class = 'place'
|
||||||
|
AND type != 'postcode'
|
||||||
|
AND name is not null
|
||||||
|
AND indexed_status = 0
|
||||||
|
AND linked_place_id is null;
|
||||||
```
|
```
|
||||||
|
|
||||||
You also need to grant the website user access to the `country_osm_grid` table:
|
You also need to grant the website user access to the `country_osm_grid` table:
|
||||||
|
|
||||||
```
|
```sql
|
||||||
GRANT SELECT ON table country_osm_grid to "www-user";
|
GRANT SELECT ON table country_osm_grid to "www-user";
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -192,7 +208,7 @@ Replace the `www-user` with the user name of your website server if necessary.
|
|||||||
|
|
||||||
You can now drop the unused indexes:
|
You can now drop the unused indexes:
|
||||||
|
|
||||||
```
|
```sql
|
||||||
DROP INDEX idx_placex_reverse_geometry;
|
DROP INDEX idx_placex_reverse_geometry;
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -221,8 +237,8 @@ CREATE INDEX idx_postcode_geometry ON location_postcode USING GIST (geometry);
|
|||||||
CREATE UNIQUE INDEX idx_postcode_id ON location_postcode USING BTREE (place_id);
|
CREATE UNIQUE INDEX idx_postcode_id ON location_postcode USING BTREE (place_id);
|
||||||
CREATE INDEX idx_postcode_postcode ON location_postcode USING BTREE (postcode);
|
CREATE INDEX idx_postcode_postcode ON location_postcode USING BTREE (postcode);
|
||||||
GRANT SELECT ON location_postcode TO "www-data";
|
GRANT SELECT ON location_postcode TO "www-data";
|
||||||
drop type if exists nearfeaturecentr cascade;
|
DROP TYPE IF EXISTS nearfeaturecentr CASCADE;
|
||||||
create type nearfeaturecentr as (
|
CREATE TYPE nearfeaturecentr AS (
|
||||||
place_id BIGINT,
|
place_id BIGINT,
|
||||||
keywords int[],
|
keywords int[],
|
||||||
rank_address smallint,
|
rank_address smallint,
|
||||||
|
|||||||
Reference in New Issue
Block a user