From 66748111a3b12520b2dcf60bd56421eb4e3dc5f6 Mon Sep 17 00:00:00 2001 From: John Wiseman Date: Wed, 18 Dec 2019 17:15:07 -0800 Subject: [PATCH 01/98] Added note about disk space requirement. ``` $ du -sh /data 30G /data ``` --- projects/los-angeles-metro/README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/projects/los-angeles-metro/README.md b/projects/los-angeles-metro/README.md index 2b3938d8..defdad17 100644 --- a/projects/los-angeles-metro/README.md +++ b/projects/los-angeles-metro/README.md @@ -11,6 +11,8 @@ The minimum configuration required in order to run this project are [installing Please ensure that's all working fine before continuing. +This project requires about 30 GB of disk space. + # Run a Build To run a complete build, execute the following commands: From 442ef3f902e4d905df5cce9ff8c841ee429a30e8 Mon Sep 17 00:00:00 2001 From: Thiago Miranda Date: Tue, 28 Jan 2020 19:05:52 +0000 Subject: [PATCH 02/98] =?UTF-8?q?c=C3=B3pia=20do=20Brasil=20para=20South?= =?UTF-8?q?=20America?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- projects/south-america/.env | 3 + projects/south-america/README.md | 34 ++++++ projects/south-america/blacklist/osm.txt | 0 projects/south-america/docker-compose.yml | 128 ++++++++++++++++++++++ projects/south-america/pelias.json | 97 ++++++++++++++++ 5 files changed, 262 insertions(+) create mode 100644 projects/south-america/.env create mode 100644 projects/south-america/README.md create mode 100644 projects/south-america/blacklist/osm.txt create mode 100644 projects/south-america/docker-compose.yml create mode 100644 projects/south-america/pelias.json diff --git a/projects/south-america/.env b/projects/south-america/.env new file mode 100644 index 00000000..fb544e03 --- /dev/null +++ b/projects/south-america/.env @@ -0,0 +1,3 @@ +COMPOSE_PROJECT_NAME=pelias +DATA_DIR=/tmp/pelias/brazil +DOCKER_USER=1000 diff --git a/projects/south-america/README.md b/projects/south-america/README.md new file mode 100644 index 00000000..b8444a89 --- /dev/null +++ b/projects/south-america/README.md @@ -0,0 +1,34 @@ + +# South América + +This project is configured to download/prepare/build a complete Pelias installation for the South América. + +# Setup + +Please refer to the instructions at https://github.com/pelias/docker in order to install and configure your docker environment. + +The minimum configuration required in order to run this project are [installing prerequisites](https://github.com/pelias/docker#prerequisites), [install the pelias command](https://github.com/pelias/docker#installing-the-pelias-command) and [configure the environment](https://github.com/pelias/docker#configure-environment). + +Please ensure that's all working fine before continuing. + +# Run a Build + +To run a complete build, execute the following commands: + +```bash +pelias compose pull +pelias elastic start +pelias elastic wait +pelias elastic create +pelias download all +pelias prepare all +pelias import all +pelias compose up +pelias test run +``` + +# Make an Example Query + +You can now make queries against your new Pelias build: + +http://localhost:4000/v1/search?text=Flores da Cunha diff --git a/projects/south-america/blacklist/osm.txt b/projects/south-america/blacklist/osm.txt new file mode 100644 index 00000000..e69de29b diff --git a/projects/south-america/docker-compose.yml b/projects/south-america/docker-compose.yml new file mode 100644 index 00000000..729f5026 --- /dev/null +++ b/projects/south-america/docker-compose.yml @@ -0,0 +1,128 @@ +version: '3' +networks: + default: + driver: bridge +services: + libpostal: + image: pelias/libpostal-service + container_name: pelias_libpostal + user: "${DOCKER_USER}" + restart: always + ports: [ "4400:4400" ] + schema: + image: pelias/schema:master + container_name: pelias_schema + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + api: + image: pelias/api:master + container_name: pelias_api + user: "${DOCKER_USER}" + restart: always + environment: [ "PORT=4000" ] + ports: [ "4000:4000" ] + volumes: + - "./pelias.json:/code/pelias.json" + placeholder: + image: pelias/placeholder:master + container_name: pelias_placeholder + user: "${DOCKER_USER}" + restart: always + environment: [ "PORT=4100" ] + ports: [ "4100:4100" ] + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + - "./blacklist/:/data/blacklist" + whosonfirst: + image: pelias/whosonfirst:master + container_name: pelias_whosonfirst + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + - "./blacklist/:/data/blacklist" + openstreetmap: + image: pelias/openstreetmap:master + container_name: pelias_openstreetmap + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + - "./blacklist/:/data/blacklist" + openaddresses: + image: pelias/openaddresses:master + container_name: pelias_openaddresses + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + - "./blacklist/:/data/blacklist" + transit: + image: pelias/transit:master + container_name: pelias_transit + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + csv-importer: + image: pelias/csv-importer:master + container_name: pelias_csv_importer + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + - "./blacklist/:/data/blacklist" + polylines: + image: pelias/polylines:master + container_name: pelias_polylines + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + interpolation: + image: pelias/interpolation:master + container_name: pelias_interpolation + user: "${DOCKER_USER}" + restart: always + environment: [ "PORT=4300" ] + ports: [ "4300:4300" ] + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + pip: + image: pelias/pip-service:master + container_name: pelias_pip-service + user: "${DOCKER_USER}" + restart: always + environment: [ "PORT=4200" ] + ports: [ "4200:4200" ] + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + elasticsearch: + image: pelias/elasticsearch:7.5.1 + container_name: pelias_elasticsearch + user: "${DOCKER_USER}" + restart: always + ports: [ "9200:9200", "9300:9300" ] + volumes: + - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" + ulimits: + memlock: + soft: -1 + hard: -1 + nofile: + soft: 65536 + hard: 65536 + cap_add: [ "IPC_LOCK" ] + fuzzy-tester: + image: pelias/fuzzy-tester:master + container_name: pelias_fuzzy_tester + user: "${DOCKER_USER}" + restart: "no" + command: "--help" + volumes: + - "./pelias.json:/code/pelias.json" + - "./test_cases:/code/pelias/fuzzy-tester/test_cases" diff --git a/projects/south-america/pelias.json b/projects/south-america/pelias.json new file mode 100644 index 00000000..e2388ebc --- /dev/null +++ b/projects/south-america/pelias.json @@ -0,0 +1,97 @@ +{ + "logger": { + "level": "info", + "timestamp": false + }, + "esclient": { + "apiVersion": "7.5", + "hosts": [ + { "host": "elasticsearch" } + ] + }, + "elasticsearch": { + "settings": { + "index": { + "refresh_interval": "10s", + "number_of_replicas": "0", + "number_of_shards": "3" + } + } + }, + "acceptance-tests": { + "endpoints": { + "docker": "http://api:4000/v1/" + } + }, + "api": { + "services": { + "placeholder": { "url": "http://placeholder:4100" }, + "pip": { "url": "http://pip:4200" }, + "interpolation": { "url": "http://interpolation:4300" }, + "libpostal": { "url": "http://libpostal:4400" } + } + }, + "imports": { + "adminLookup": { + "enabled": true + }, + "geonames": { + "datapath": "/data/geonames", + "countryCode": "BR" + }, + "openstreetmap": { + "download": [ + { "sourceURL": "http://download.geofabrik.de/south-america/brazil-latest.osm.pbf" } + ], + "leveldbpath": "/tmp", + "datapath": "/data/openstreetmap", + "import": [{ + "filename": "brazil-latest.osm.pbf" + }] + }, + "openaddresses": { + "datapath": "/data/openaddresses", + "files": [ + "br/ac/statewide.csv", + "br/al/statewide.csv", + "br/am/statewide.csv", + "br/ap/statewide.csv", + "br/ba/statewide.csv", + "br/ce/statewide.csv", + "br/df/statewide.csv", + "br/es/statewide.csv", + "br/go/statewide.csv", + "br/ma/statewide.csv", + "br/mg/statewide.csv", + "br/ms/statewide.csv", + "br/mt/statewide.csv", + "br/pa/statewide.csv", + "br/pb/statewide.csv", + "br/pe/statewide.csv", + "br/pi/statewide.csv", + "br/pr/statewide.csv", + "br/rj/statewide.csv", + "br/rn/statewide.csv", + "br/ro/statewide.csv", + "br/rr/statewide.csv", + "br/rs/statewide.csv", + "br/sc/statewide.csv", + "br/se/statewide.csv", + "br/sp/statewide.csv", + "br/to/statewide.csv" + ] + }, + "polyline": { + "datapath": "/data/polylines", + "files": [ "extract.0sv" ] + }, + "whosonfirst": { + "datapath": "/data/whosonfirst", + "importVenues": true, + "importPostalcodes": true, + "importPlace": [ + "85633009" + ] + } + } +} From 644bf6ce2bf4f5198f475991aa964f26fce50a29 Mon Sep 17 00:00:00 2001 From: Thiago Miranda Date: Tue, 28 Jan 2020 20:44:27 +0000 Subject: [PATCH 03/98] =?UTF-8?q?pelias.json=20am=C3=A9rica=20do=20sul?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- projects/south-america/pelias.json | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/projects/south-america/pelias.json b/projects/south-america/pelias.json index e2388ebc..2a56a5db 100644 --- a/projects/south-america/pelias.json +++ b/projects/south-america/pelias.json @@ -41,12 +41,12 @@ }, "openstreetmap": { "download": [ - { "sourceURL": "http://download.geofabrik.de/south-america/brazil-latest.osm.pbf" } + { "sourceURL": "http://download.geofabrik.de/south-america-latest.osm.pbf" } ], "leveldbpath": "/tmp", "datapath": "/data/openstreetmap", "import": [{ - "filename": "brazil-latest.osm.pbf" + "filename": "south-america-latest.osm.pbf" }] }, "openaddresses": { @@ -78,7 +78,13 @@ "br/sc/statewide.csv", "br/se/statewide.csv", "br/sp/statewide.csv", - "br/to/statewide.csv" + "br/to/statewide.csv", + "ar/c/city_of_buenos_aires.csv", + "cl/countrywide.csv", + "uy/countrywide.csv", + "uy/mo/montevideo.csv", + "co/ant/medellin.csv", + "co/bogota.csv" ] }, "polyline": { @@ -90,7 +96,7 @@ "importVenues": true, "importPostalcodes": true, "importPlace": [ - "85633009" + "102191577" ] } } From edebe6bea1efd6937cc60a0e9da31a2c8ece21f4 Mon Sep 17 00:00:00 2001 From: Thiago Miranda Date: Tue, 28 Jan 2020 20:57:09 +0000 Subject: [PATCH 04/98] change .env pelias --- projects/south-america/.env | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/south-america/.env b/projects/south-america/.env index fb544e03..7ca1d6c5 100644 --- a/projects/south-america/.env +++ b/projects/south-america/.env @@ -1,3 +1,3 @@ COMPOSE_PROJECT_NAME=pelias -DATA_DIR=/tmp/pelias/brazil +DATA_DIR=/tmp/pelias/north-america DOCKER_USER=1000 From 15c28e72aa5d19a40778c317bfca8ae3772d9c83 Mon Sep 17 00:00:00 2001 From: Thiago Miranda Date: Tue, 28 Jan 2020 21:02:32 +0000 Subject: [PATCH 05/98] env data --- projects/south-america/.env | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/south-america/.env b/projects/south-america/.env index 7ca1d6c5..e762ce43 100644 --- a/projects/south-america/.env +++ b/projects/south-america/.env @@ -1,3 +1,3 @@ COMPOSE_PROJECT_NAME=pelias -DATA_DIR=/tmp/pelias/north-america +DATA_DIR=/data DOCKER_USER=1000 From 372c30e96d74e525b61e81746d209ec23a331ac4 Mon Sep 17 00:00:00 2001 From: missinglink Date: Mon, 30 Mar 2020 20:15:49 +0200 Subject: [PATCH 06/98] fix(buffering): disable TTY for prepeare scripts to avoid unsightly buffering --- cmd/prepare.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/cmd/prepare.sh b/cmd/prepare.sh index 5ac490e4..ab4ea1eb 100644 --- a/cmd/prepare.sh +++ b/cmd/prepare.sh @@ -2,11 +2,11 @@ set -e; # per-source prepares -function prepare_polylines(){ compose_run 'polylines' bash ./docker_extract.sh; } -function prepare_interpolation(){ compose_run 'interpolation' bash ./docker_build.sh; } +function prepare_polylines(){ compose_run -T 'polylines' bash ./docker_extract.sh; } +function prepare_interpolation(){ compose_run -T 'interpolation' bash ./docker_build.sh; } function prepare_placeholder(){ - compose_run 'placeholder' ./cmd/extract.sh; - compose_run 'placeholder' ./cmd/build.sh; + compose_run -T 'placeholder' ./cmd/extract.sh; + compose_run -T 'placeholder' ./cmd/build.sh; } register 'prepare' 'polylines' 'export road network from openstreetmap into polylines format' prepare_polylines From e8d914b6a32b9e8933cf6a376aa1b2609f24992c Mon Sep 17 00:00:00 2001 From: missinglink Date: Fri, 3 Apr 2020 11:06:28 +0200 Subject: [PATCH 07/98] docs(readme): simplify quick-start docs --- .gitignore | 1 + README.md | 31 ++++++++++++++++--------------- 2 files changed, 17 insertions(+), 15 deletions(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..3d91ccad --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +projects/*/data diff --git a/README.md b/README.md index fd4b1141..dc855fe7 100644 --- a/README.md +++ b/README.md @@ -31,32 +31,34 @@ At least 8GB RAM is required. The following shell script can be used to quickly get started with a Pelias build. -Feel free to modify the code and data locations to suit your needs. - ```bash #!/bin/bash set -x -# create directories -mkdir /code /data - -# set proper permissions. make sure the user matches your `DOCKER_USER` setting in `.env` -chown 1000:1000 /code /data +# change directory to the where you would like to install Pelias +# cd /path/to/install -# clone repo -cd /code -git clone https://github.com/pelias/docker.git -cd docker +# clone this repository +git clone https://github.com/pelias/docker.git && cd docker # install pelias script ln -s "$(pwd)/pelias" /usr/local/bin/pelias -# cwd +# cd into the project directory cd projects/portland-metro -# configure environment +# create a directory to store Pelias data files +# see: https://github.com/pelias/docker#variable-data_dir +# note: use 'gsed' instead of 'sed' on a Mac +mkdir ./data sed -i '/DATA_DIR/d' .env -echo 'DATA_DIR=/data' >> .env +echo 'DATA_DIR=./data' >> .env + +# configure docker to write files as your local user +# see: https://github.com/pelias/docker#variable-docker_user +# note: use 'gsed' instead of 'sed' on a Mac +sed -i '/DOCKER_USER/d' .env +echo "DOCKER_USER=$(id -u)" >> .env # run build pelias compose pull @@ -72,7 +74,6 @@ pelias compose up pelias test run ``` - ## Installing the Pelias helper script This repository makes use of a helper script to make basic management of the Pelias Docker images easy. From 0ae79cea269b42d7faca83613e430526a4dd9762 Mon Sep 17 00:00:00 2001 From: Joxit Date: Sat, 4 Apr 2020 23:02:45 +0200 Subject: [PATCH 08/98] fix(france): update oa, now we should use `fr/countrywide.csv` --- projects/france/pelias.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/france/pelias.json b/projects/france/pelias.json index 0f4373e6..ced3e550 100644 --- a/projects/france/pelias.json +++ b/projects/france/pelias.json @@ -50,7 +50,7 @@ }, "openaddresses": { "datapath": "/data/openaddresses", - "files": ["fr/ain.csv", "fr/aisne.csv", "fr/allier.csv", "fr/alpes_de_haute_provence.csv", "fr/alpes_maritimes.csv", "fr/ardeche.csv", "fr/ardennes.csv", "fr/ariege.csv", "fr/aube.csv", "fr/aude.csv", "fr/aveyron.csv", "fr/bas_rhin.csv", "fr/bouches_du_rhone.csv", "fr/calvados.csv", "fr/cantal.csv", "fr/charente.csv", "fr/charente_maritime.csv", "fr/cher.csv", "fr/colmar.csv", "fr/correze.csv", "fr/corse_du_sud.csv", "fr/cote_dor.csv", "fr/cotes_darmor.csv", "fr/creuse.csv", "fr/deux_sevres.csv", "fr/dordogne.csv", "fr/doubs.csv", "fr/drome.csv", "fr/essonne.csv", "fr/eure.csv", "fr/eure_et_loir.csv", "fr/finistere.csv", "fr/gard.csv", "fr/gers.csv", "fr/gironde.csv", "fr/guadeloupe.csv", "fr/guyane.csv", "fr/haute_corse.csv", "fr/haute_garonne.csv", "fr/haute_loire.csv", "fr/haute_marne.csv", "fr/haute_rhin.csv", "fr/hautes_alpes.csv", "fr/haute_saone.csv", "fr/haute_savoie.csv", "fr/hautes_pyrenees.csv", "fr/haute_vienne.csv", "fr/hauts_de_seine.csv", "fr/herault.csv", "fr/ille_et_vilaine.csv", "fr/indre.csv", "fr/indre_et_loire.csv", "fr/isere.csv", "fr/jura.csv", "fr/landes.csv", "fr/la_reunion.csv", "fr/loire_atlantique.csv", "fr/loire.csv", "fr/loir_et_cher.csv", "fr/loiret.csv", "fr/lot.csv", "fr/lot_et_garonne.csv", "fr/lozere.csv", "fr/maine_et_loire.csv", "fr/manche.csv", "fr/marne.csv", "fr/martinique.csv", "fr/mayenne.csv", "fr/mayotte.csv", "fr/meurthe_et_moselle.csv", "fr/meuse.csv", "fr/montpellier.csv", "fr/morbihan.csv", "fr/moselle.csv", "fr/nievre.csv", "fr/nord.csv", "fr/oise.csv", "fr/orne.csv", "fr/paris.csv", "fr/pas_de_calais.csv", "fr/puy_de_dome.csv", "fr/pyrenees_atlantiques.csv", "fr/pyrenees_orientales.csv", "fr/rhone.csv", "fr/saone_et_loire.csv", "fr/sarthe.csv", "fr/savoie.csv", "fr/seine_et_marne.csv", "fr/seine_maritime.csv", "fr/seine_saint_denis.csv", "fr/somme.csv", "fr/tarn.csv", "fr/tarn_et_garonne.csv", "fr/territoire_de_belfort.csv", "fr/val_de_marne.csv", "fr/val_doise.csv", "fr/var.csv", "fr/vaucluse.csv", "fr/vendee.csv", "fr/vienne.csv", "fr/vosges.csv", "fr/yonne.csv", "fr/yvelines.csv"] + "files": ["fr/countrywide.csv"] }, "polyline": { "datapath": "/data/polylines", From 71647632337f4c9c23beb0333d69abca671b642d Mon Sep 17 00:00:00 2001 From: Julian Simioni Date: Mon, 13 Apr 2020 09:46:42 -0700 Subject: [PATCH 09/98] Update planet acceptance tests submodule --- projects/planet/acceptance-tests | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/planet/acceptance-tests b/projects/planet/acceptance-tests index 96817ba4..bddd71ac 160000 --- a/projects/planet/acceptance-tests +++ b/projects/planet/acceptance-tests @@ -1 +1 @@ -Subproject commit 96817ba4442ac7c4e87c5143005c363804a10fe2 +Subproject commit bddd71ac6bd45a34fd326625d890716d45c16364 From c54f2bbdb44954ffbfc589feebdcad5b16da8cb7 Mon Sep 17 00:00:00 2001 From: missinglink Date: Thu, 23 Apr 2020 17:57:00 +0200 Subject: [PATCH 10/98] fix(buffering): disable TTY for prepeare scripts to avoid unsightly buffering --- cmd/download.sh | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/cmd/download.sh b/cmd/download.sh index e16c30d1..e8e736e1 100644 --- a/cmd/download.sh +++ b/cmd/download.sh @@ -2,13 +2,13 @@ set -e; # per-source downloads -function download_wof(){ compose_run 'whosonfirst' './bin/download'; } -function download_oa(){ compose_run 'openaddresses' './bin/download'; } -function download_osm(){ compose_run 'openstreetmap' './bin/download'; } -function download_geonames(){ compose_run 'geonames' './bin/download'; } -function download_tiger(){ compose_run 'interpolation' './bin/download-tiger'; } -function download_transit(){ compose_run 'transit' './bin/download'; } -function download_csv(){ compose_run 'csv-importer' './bin/download'; } +function download_wof(){ compose_run -T 'whosonfirst' './bin/download'; } +function download_oa(){ compose_run -T 'openaddresses' './bin/download'; } +function download_osm(){ compose_run -T 'openstreetmap' './bin/download'; } +function download_geonames(){ compose_run -T 'geonames' './bin/download'; } +function download_tiger(){ compose_run -T 'interpolation' './bin/download-tiger'; } +function download_transit(){ compose_run -T 'transit' './bin/download'; } +function download_csv(){ compose_run -T 'csv-importer' './bin/download'; } register 'download' 'wof' '(re)download whosonfirst data' download_wof register 'download' 'oa' '(re)download openaddresses data' download_oa From c85bf72c5cb31c2b0284e2a8c0fc76599a361ce8 Mon Sep 17 00:00:00 2001 From: Julian Simioni Date: Thu, 23 Apr 2020 14:25:25 -0700 Subject: [PATCH 11/98] Add `countryCode` property to WOF configuration Now that the Who's on First downloader defaults to using SQLite downloads and supports country-specific bundles thanks to https://github.com/pelias/whosonfirst/pull/487, we can start using that new functionality. This PR sets the `imports.whosonfirst.countryCode` property appropriately across all our current projects. This should not only help make all imports quite a bit faster, but it will require much less disk space for everyone. Since we're now sponsoring the Who's on First downloads here at Geocode Earth, the bandwidth savings also make us happy :) Along the way I made a few minor changes to remove some deprecated config options like `importVenues` and `sqlite`. --- projects/australia/pelias.json | 2 +- projects/belgium/pelias.json | 2 +- projects/brazil/pelias.json | 2 +- projects/france/pelias.json | 2 +- projects/jamaica/pelias.json | 2 +- projects/los-angeles-metro/pelias.json | 3 ++- projects/netherlands/pelias.json | 4 ++-- projects/north-america/pelias.json | 1 + projects/planet/pelias.json | 1 - projects/portland-metro/pelias.json | 1 + projects/san-jose-metro/pelias.json | 4 ++-- projects/singapore/pelias.json | 3 +-- projects/south-africa/pelias.json | 2 +- projects/south-america/pelias.json | 2 +- 14 files changed, 16 insertions(+), 15 deletions(-) diff --git a/projects/australia/pelias.json b/projects/australia/pelias.json index dd4f7b14..45975ed3 100644 --- a/projects/australia/pelias.json +++ b/projects/australia/pelias.json @@ -61,7 +61,7 @@ }, "whosonfirst": { "datapath": "/data/whosonfirst", - "importVenues": false, + "countryCode": "AU", "importPostalcodes": true, "importPlace": [ "85632793" diff --git a/projects/belgium/pelias.json b/projects/belgium/pelias.json index cf4b6da7..620c40d6 100644 --- a/projects/belgium/pelias.json +++ b/projects/belgium/pelias.json @@ -58,7 +58,7 @@ }, "whosonfirst": { "datapath": "/data/whosonfirst", - "importVenues": false, + "countryCode": "BE", "importPostalcodes": true, "importPlace": [ "85632997" ] } diff --git a/projects/brazil/pelias.json b/projects/brazil/pelias.json index e2388ebc..975b8b03 100644 --- a/projects/brazil/pelias.json +++ b/projects/brazil/pelias.json @@ -87,7 +87,7 @@ }, "whosonfirst": { "datapath": "/data/whosonfirst", - "importVenues": true, + "countryCode": "BR", "importPostalcodes": true, "importPlace": [ "85633009" diff --git a/projects/france/pelias.json b/projects/france/pelias.json index ced3e550..3e05c4b8 100644 --- a/projects/france/pelias.json +++ b/projects/france/pelias.json @@ -58,8 +58,8 @@ }, "whosonfirst": { "datapath": "/data/whosonfirst", - "importVenues": false, "importPostalcodes": true, + "countryCode": "FR", "importPlace": [ "136253037", "85633147" ] } } diff --git a/projects/jamaica/pelias.json b/projects/jamaica/pelias.json index 55c58b7c..bd2f4613 100644 --- a/projects/jamaica/pelias.json +++ b/projects/jamaica/pelias.json @@ -61,7 +61,7 @@ }, "whosonfirst": { "datapath": "/data/whosonfirst", - "importVenues": true, + "countryCode": "JM", "importPostalcodes": true, "importPlace": [ "85632215" diff --git a/projects/los-angeles-metro/pelias.json b/projects/los-angeles-metro/pelias.json index d7d61918..463a58bf 100644 --- a/projects/los-angeles-metro/pelias.json +++ b/projects/los-angeles-metro/pelias.json @@ -41,7 +41,7 @@ }, "geonames": { "datapath": "/data/geonames", - "countryCode": "ALL" + "countryCode": "US" }, "openstreetmap": { "download": [ @@ -67,6 +67,7 @@ "datapath": "/data/whosonfirst", "importVenues": false, "importPostalcodes": true, + "countryCode": "US", "importPlace": [ "102086957" ] diff --git a/projects/netherlands/pelias.json b/projects/netherlands/pelias.json index 21ccf5d8..57790cf7 100644 --- a/projects/netherlands/pelias.json +++ b/projects/netherlands/pelias.json @@ -58,9 +58,9 @@ }, "whosonfirst": { "datapath": "/data/whosonfirst", - "importVenues": false, + "countryCode": "NL", "importPostalcodes": true, "importPlace": [ "85633337" ] } } -} \ No newline at end of file +} diff --git a/projects/north-america/pelias.json b/projects/north-america/pelias.json index 28570b29..31d9f177 100644 --- a/projects/north-america/pelias.json +++ b/projects/north-america/pelias.json @@ -1833,6 +1833,7 @@ "whosonfirst": { "datapath": "/data/whosonfirst", "importPostalcodes": true, + "countryCode": ["CA", "MX", "US"], "importPlace": "102191575" }, "interpolation": { diff --git a/projects/planet/pelias.json b/projects/planet/pelias.json index dbfbe922..b3865b41 100644 --- a/projects/planet/pelias.json +++ b/projects/planet/pelias.json @@ -60,7 +60,6 @@ }, "whosonfirst": { "datapath": "/data/whosonfirst", - "importVenues": false, "importPostalcodes": true }, "interpolation": { diff --git a/projects/portland-metro/pelias.json b/projects/portland-metro/pelias.json index 9f37e359..5482879c 100644 --- a/projects/portland-metro/pelias.json +++ b/projects/portland-metro/pelias.json @@ -85,6 +85,7 @@ "datapath": "/data/whosonfirst", "importVenues": false, "importPostalcodes": true, + "countryCode": "US", "importPlace": [ "85688513", "85688623" diff --git a/projects/san-jose-metro/pelias.json b/projects/san-jose-metro/pelias.json index fc9780a6..668f774e 100644 --- a/projects/san-jose-metro/pelias.json +++ b/projects/san-jose-metro/pelias.json @@ -41,7 +41,7 @@ }, "geonames": { "datapath": "/data/geonames", - "countryCode": "ALL" + "countryCode": "US" }, "openstreetmap": { "download": [ @@ -71,8 +71,8 @@ }, "whosonfirst": { "datapath": "/data/whosonfirst", - "importVenues": false, "importPostalcodes": true, + "countryCode": "US", "importPlace": [ "1360665447" ] diff --git a/projects/singapore/pelias.json b/projects/singapore/pelias.json index 7dbc4bd0..c50eef19 100644 --- a/projects/singapore/pelias.json +++ b/projects/singapore/pelias.json @@ -60,10 +60,9 @@ "files": [ "extract.0sv" ] }, "whosonfirst": { - "sqlite": true, "datapath": "/data/whosonfirst", - "importVenues": false, "importPostalcodes": true, + "countryCode": "SG", "importPlace": [ "85632605" ] diff --git a/projects/south-africa/pelias.json b/projects/south-africa/pelias.json index 10457b47..9f42f033 100644 --- a/projects/south-africa/pelias.json +++ b/projects/south-africa/pelias.json @@ -65,8 +65,8 @@ }, "whosonfirst": { "datapath": "/data/whosonfirst", - "importVenues": false, "importPostalcodes": true, + "countryCode": "ZA", "importPlace": [ "85633813" ] diff --git a/projects/south-america/pelias.json b/projects/south-america/pelias.json index 2a56a5db..9a558e32 100644 --- a/projects/south-america/pelias.json +++ b/projects/south-america/pelias.json @@ -93,8 +93,8 @@ }, "whosonfirst": { "datapath": "/data/whosonfirst", - "importVenues": true, "importPostalcodes": true, + "countryCode": [ "AR", "BO", "BR", "CL", "GF", "EC", "GY", "PY", "PE", "SR", "UY", "VE" ], "importPlace": [ "102191577" ] From 81ae0c93d2ba4af77f031cc1752d6843bb0d70a9 Mon Sep 17 00:00:00 2001 From: Julian Simioni Date: Thu, 23 Apr 2020 14:47:53 -0700 Subject: [PATCH 12/98] There are a lot more country codes for North America than I thought --- projects/north-america/pelias.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/projects/north-america/pelias.json b/projects/north-america/pelias.json index 31d9f177..6c059b8e 100644 --- a/projects/north-america/pelias.json +++ b/projects/north-america/pelias.json @@ -1833,7 +1833,8 @@ "whosonfirst": { "datapath": "/data/whosonfirst", "importPostalcodes": true, - "countryCode": ["CA", "MX", "US"], + "countryCode": ["AI", "AG", "AW", "BS", "BB", "BZ", "BM", "BQ", "BO", "VG", "KY", "CA", + "CR", "CU", "CW", "DM", "DO", "SV", "GD", "GL", "GT", "HT", "HN", "JM", "MQ", "MS", "NI", "VE", "PA", "PR", "BL", "KN", "LC", "PM", "VC", "SX", "MF", "MX", "TT", "TC", "US", "VI"], "importPlace": "102191575" }, "interpolation": { From 174c5a337f30f4d70f8f42d64ae34b767bc1dea6 Mon Sep 17 00:00:00 2001 From: Julian Simioni Date: Thu, 23 Apr 2020 15:18:36 -0700 Subject: [PATCH 13/98] Add missing importers to Australia config --- projects/australia/docker-compose.yml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/projects/australia/docker-compose.yml b/projects/australia/docker-compose.yml index 729f5026..1073985b 100644 --- a/projects/australia/docker-compose.yml +++ b/projects/australia/docker-compose.yml @@ -59,6 +59,22 @@ services: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" - "./blacklist/:/data/blacklist" + geonames: + image: pelias/geonames:master + container_name: pelias_geonames + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + - "./blacklist/:/data/blacklist" + csv-importer: + image: pelias/csv-importer:master + container_name: pelias_csv_importer + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + - "./blacklist/:/data/blacklist" transit: image: pelias/transit:master container_name: pelias_transit From 7896318a1ebe782cdaa28a2ff8b2e2a6abf87a13 Mon Sep 17 00:00:00 2001 From: David Blackman Date: Mon, 9 Mar 2020 19:17:02 -0400 Subject: [PATCH 14/98] basic NYC build - does not contain all of NYC's transit data (subways only) --- .gitignore | 1 + projects/new-york-city/.env | 3 + projects/new-york-city/README.md | 34 + projects/new-york-city/blacklist/osm.txt | 0 projects/new-york-city/docker-compose.yml | 128 + projects/new-york-city/pelias.json | 115 + .../new-york-city/synonyms/custom_name.txt | 17 + .../new-york-city/synonyms/custom_street.txt | 125 + .../test_cases/search_address.json | 8057 +++++++++++++++++ .../test_cases/search_venue.json | 49 + 10 files changed, 8529 insertions(+) create mode 100644 .gitignore create mode 100644 projects/new-york-city/.env create mode 100644 projects/new-york-city/README.md create mode 100644 projects/new-york-city/blacklist/osm.txt create mode 100644 projects/new-york-city/docker-compose.yml create mode 100644 projects/new-york-city/pelias.json create mode 100644 projects/new-york-city/synonyms/custom_name.txt create mode 100644 projects/new-york-city/synonyms/custom_street.txt create mode 100644 projects/new-york-city/test_cases/search_address.json create mode 100644 projects/new-york-city/test_cases/search_venue.json diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..e43b0f98 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.DS_Store diff --git a/projects/new-york-city/.env b/projects/new-york-city/.env new file mode 100644 index 00000000..b036090f --- /dev/null +++ b/projects/new-york-city/.env @@ -0,0 +1,3 @@ +COMPOSE_PROJECT_NAME=pelias +DATA_DIR=/tmp/pelias/new-york-city +DOCKER_USER=1000 diff --git a/projects/new-york-city/README.md b/projects/new-york-city/README.md new file mode 100644 index 00000000..fd67fd06 --- /dev/null +++ b/projects/new-york-city/README.md @@ -0,0 +1,34 @@ + +# New York City + +This project is configured to download/prepare/build a complete Pelias installation for New York City, New York. + +# Setup + +Please refer to the instructions at https://github.com/pelias/docker in order to install and configure your docker environment. + +The minimum configuration required in order to run this project are [installing prerequisites](https://github.com/pelias/docker#prerequisites), [install the pelias command](https://github.com/pelias/docker#installing-the-pelias-command) and [configure the environment](https://github.com/pelias/docker#configure-environment). + +Please ensure that's all working fine before continuing. + +# Run a Build + +To run a complete build, execute the following commands: + +```bash +pelias compose pull +pelias elastic start +pelias elastic wait +pelias elastic create +pelias download all +pelias prepare all +pelias import all +pelias compose up +pelias test run +``` + +# Make an Example Query + +You can now make queries against your new Pelias build: + +http://localhost:4000/v1/search?text=111+8th+ave+nyc diff --git a/projects/new-york-city/blacklist/osm.txt b/projects/new-york-city/blacklist/osm.txt new file mode 100644 index 00000000..e69de29b diff --git a/projects/new-york-city/docker-compose.yml b/projects/new-york-city/docker-compose.yml new file mode 100644 index 00000000..729f5026 --- /dev/null +++ b/projects/new-york-city/docker-compose.yml @@ -0,0 +1,128 @@ +version: '3' +networks: + default: + driver: bridge +services: + libpostal: + image: pelias/libpostal-service + container_name: pelias_libpostal + user: "${DOCKER_USER}" + restart: always + ports: [ "4400:4400" ] + schema: + image: pelias/schema:master + container_name: pelias_schema + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + api: + image: pelias/api:master + container_name: pelias_api + user: "${DOCKER_USER}" + restart: always + environment: [ "PORT=4000" ] + ports: [ "4000:4000" ] + volumes: + - "./pelias.json:/code/pelias.json" + placeholder: + image: pelias/placeholder:master + container_name: pelias_placeholder + user: "${DOCKER_USER}" + restart: always + environment: [ "PORT=4100" ] + ports: [ "4100:4100" ] + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + - "./blacklist/:/data/blacklist" + whosonfirst: + image: pelias/whosonfirst:master + container_name: pelias_whosonfirst + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + - "./blacklist/:/data/blacklist" + openstreetmap: + image: pelias/openstreetmap:master + container_name: pelias_openstreetmap + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + - "./blacklist/:/data/blacklist" + openaddresses: + image: pelias/openaddresses:master + container_name: pelias_openaddresses + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + - "./blacklist/:/data/blacklist" + transit: + image: pelias/transit:master + container_name: pelias_transit + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + csv-importer: + image: pelias/csv-importer:master + container_name: pelias_csv_importer + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + - "./blacklist/:/data/blacklist" + polylines: + image: pelias/polylines:master + container_name: pelias_polylines + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + interpolation: + image: pelias/interpolation:master + container_name: pelias_interpolation + user: "${DOCKER_USER}" + restart: always + environment: [ "PORT=4300" ] + ports: [ "4300:4300" ] + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + pip: + image: pelias/pip-service:master + container_name: pelias_pip-service + user: "${DOCKER_USER}" + restart: always + environment: [ "PORT=4200" ] + ports: [ "4200:4200" ] + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + elasticsearch: + image: pelias/elasticsearch:7.5.1 + container_name: pelias_elasticsearch + user: "${DOCKER_USER}" + restart: always + ports: [ "9200:9200", "9300:9300" ] + volumes: + - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" + ulimits: + memlock: + soft: -1 + hard: -1 + nofile: + soft: 65536 + hard: 65536 + cap_add: [ "IPC_LOCK" ] + fuzzy-tester: + image: pelias/fuzzy-tester:master + container_name: pelias_fuzzy_tester + user: "${DOCKER_USER}" + restart: "no" + command: "--help" + volumes: + - "./pelias.json:/code/pelias.json" + - "./test_cases:/code/pelias/fuzzy-tester/test_cases" diff --git a/projects/new-york-city/pelias.json b/projects/new-york-city/pelias.json new file mode 100644 index 00000000..23b24f1e --- /dev/null +++ b/projects/new-york-city/pelias.json @@ -0,0 +1,115 @@ +{ + "logger": { + "level": "info", + "timestamp": false + }, + "esclient": { + "apiVersion": "7.5", + "hosts": [ + { "host": "elasticsearch" } + ] + }, + "elasticsearch": { + "settings": { + "index": { + "refresh_interval": "10s", + "number_of_replicas": "0", + "number_of_shards": "1" + } + } + }, + "acceptance-tests": { + "endpoints": { + "docker": "http://api:4000/v1/" + } + }, + "api": { + "services": { + "placeholder": { "url": "http://placeholder:4100" }, + "pip": { "url": "http://pip:4200" }, + "interpolation": { "url": "http://interpolation:4300" }, + "libpostal": { "url": "http://libpostal:4400" } + }, + "defaultParameters": { + "focus.point.lat": 45.52, + "focus.point.lon": -122.67 + } + }, + "imports": { + "adminLookup": { + "enabled": true + }, + "blacklist": { + "files": [ + "/data/blacklist/osm.txt" + ] + }, + "csv": { + "datapath": "/data/csv", + "files": [], + "download": [ + "https://raw.githubusercontent.com/pelias/csv-importer/master/data/example.csv" + ] + }, + "geonames": { + "datapath": "/data/geonames", + "countryCode": "ALL" + }, + "openstreetmap": { + "download": [ + { "sourceURL": "https://s3.amazonaws.com/metro-extracts.nextzen.org/new-york_new-york.osm.pbf" } + ], + "leveldbpath": "/tmp", + "datapath": "/data/openstreetmap", + "import": [{ + "filename": "new-york_new-york.osm.pbf" + }] + }, + "openaddresses": { + "datapath": "/data/openaddresses", + "files": [ + "us/ny/city_of_new_york.csv" + ] + }, + "polyline": { + "datapath": "/data/polylines", + "files": [ "extract.0sv" ] + }, + "whosonfirst": { + "datapath": "/data/whosonfirst", + "importVenues": false, + "importPostalcodes": true, + "importPlace": [ + "85688543" + ] + }, + "transit": { + "datapath": "/data/transit", + "feeds": [ + { + "layerId": "stops", + "url": "http://web.mta.info/developers/data/nyct/subway/google_transit.zip", + "filename": "NYC-subway-stops.txt", + "agencyId": "MTA NYCT", + "agencyName": "MTA NYCT", + "layerName": "Stop" + } + ] + }, + "interpolation": { + "download": { + "tiger": { + "datapath": "/data/tiger", + "states": [ + { "state_code": 36, "county_code": 81, "name": "Queens County, NY" }, + { "state_code": 36, "county_code": 85, "name": "Richmond County, NY" }, + { "state_code": 36, "county_code": 61, "name": "New York County, NY" }, + { "state_code": 36, "county_code": 47, "name": "Kings County, NY" }, + { "state_code": 36, "county_code": 5, "name": "Bronx County, NY" } + + ] + } + } + } + } +} diff --git a/projects/new-york-city/synonyms/custom_name.txt b/projects/new-york-city/synonyms/custom_name.txt new file mode 100644 index 00000000..fc5f627c --- /dev/null +++ b/projects/new-york-city/synonyms/custom_name.txt @@ -0,0 +1,17 @@ + +shopping,store,shop,retail,grocery,mall + +north, N +south, S +east, E +west, W +north west => northwest +north east => northeast +south west => southwest +south east => southeast +northwest, NW +northeast, NE +southwest, SW +southeast, SE + +Int'l, international \ No newline at end of file diff --git a/projects/new-york-city/synonyms/custom_street.txt b/projects/new-york-city/synonyms/custom_street.txt new file mode 100644 index 00000000..f2ca5565 --- /dev/null +++ b/projects/new-york-city/synonyms/custom_street.txt @@ -0,0 +1,125 @@ +Transit Center => TC +Park Ride => PR +Park & Ride => PR +Park and Ride => PR +carshare,car2go,Zipcar,Flexcar,GetAround,ucarshare,uhaul,hertz,wecar,enterprise +ticket,fare,outlet,store,retail +dmv,motor,vehicles +court house => courthouse +court-house => courthouse +cc,court,courts,courth,courthouse +law,jail,prison,jail,courthouse,enforcement,juvenile,justice,juvenile,correctional +jewvi,juvi,juvenile + +first,1st +second,2nd +third,3rd +forth,4th +fifth,5th +sixth,6th +seventh,7th +eighth,8th +nineth,9th +tenth,10th +eleventh,11th +twelfth,12th +thirteenth,13th +fourteenth,14th +fifteenth,15th +sixteenth,16th +seventeenth,17th +eighteenth,18th +nineteenth,19th +twentyth,20th +twentyfirst,21st +twentysecond,22nd +twentythrid,23rd + +# USPS Suffix Abbreviations +# http://www.usps.com/ncsc/lookups/abbreviations.html#suffix +st,st.,street,str +ave,ave.,av,av.,avenue,AVNUE,AVENUE,AVENU +dr,drive,dr.,drv,driv,drives +BOULEVARD,BLVD,BOULEVARD,BOUL,BOULEVARD,BOULEVARD,BOULV +BRIDGE,BRDGE,BRG +BYPASS,BYP,BYPA,BYPAS,BYPS +CLIFF,CLF,CLIFFS,CLFS +CLUB,CLB +COMMON,CMN +CORNER,COR,CORNERS,CORS +CENTER,CEN,CENT,CENTER,CENTR,CENTRE,CNTER,CNTR,CTR,CENTERS,CTRS +CIR,CIRC,CIRCL,CIRCLE,CRCL,CIRCLE,CRCLE +COURT,CRT,CT,COURTS +CTSCK,CR,CREEK,CRK +CROSSING,CRSSING,CRSSNG,XING +CRECENT,CRES,CRESCENT,CRESENT,CRSCNT,CRSENT,CRSNT +EXP,EXPR,EXPRESS,EXPRESSWAY,EXPW,EXPY +FALL,FALLS,FLS +FERRY,FRRY,FRY +FIELD,FLD,FIELDS,FLDS +FREEWAY,FREEWY,FRWAY,FRWY,FWY +GARDEN,GARDN,GDN,GRDEN,GRDN,GARDENS,GDNS,GRDNS +GATEWAY,GATEWY,GATWAY,GTWAY,GTWY +GROV,GROVE,GRV,GROVES +HARB,HARBOR,HARBR,HBR,HRBOR,HARBORS +HEIGHT,HEIGHTS,HGTS,HT,HTS +HIGHWAY,HIGHWY,HIWAY,HIWY,HWAY,HWY +HILL,HL,HILLS,HLS +IS,ISLAND,ISLND,ISLANDS,ISLNDS,ISS,ISLE,ISLES +JCT,JCTION,JCTN,JUNCTION,JUNCTN,JUNCTON,JCTNS,JCTS,JUNCTIONS +LAKE,LK,LAKES,LKS +LANDING,LNDG,LNDNG +LA,LANE,LANES,LN +LOOP,LOOPS,LP +MANOR,MNR,MANORS,MNRS +MDW,MEADOW,MDWS,MEADOWS,MEDOWS +MILL,ML,MILLS,MLS +MNT,MOUNT,MT +MNTAIN,MNTN,MOUNTAIN,MOUNTIN,MTIN,MTN,MNTNS,MOUNTAINS +ORCH,ORCHARD,ORCHRD +PARK,PK,PRK,PARKS +PARKWAY,PARKWY,PKWAY,PKWY,PKY,PARKWAYS,PKWYS +PLAZA,PLZ,PLZA +PLACE,PL +PR,PRAIRIE,PRARIE,PRR +RANCH,RANCHES,RNCH,RNCHS +RDG,RDGE,RIDGE,RDGS,RIDGES +RIV,RIVER,RIVR,RVR +RD,ROAD,RDS,ROADS +RTESHLS,SHOALS +SHOAR,SHORE,SHR,SHOARS,SHORES,SHRS +SPG,SPNG,SPRING,SPRNG,SPGS,SPNGS,SPRINGS,SPRNGS +SQ,SQR,SQRE,SQU,SQUARE,SQRS,SQUARES +STA,STATION,STATN,STN +STREAM,STREME,STRM +ST,STR,STREET,STRT,STREETS +SMT,SUMIT,SUMITT,SUMMIT +TER,TERR,TERRACE +TR,TRAIL,TRAILS,TRL,TRLS +TUNEL,TUNL,TUNLS,TUNNEL,TUNNELS,TUNNL +UN,UNION,UNIONS +VALLEY,VALLY,VLLY,VLY,VALLEYS,VLYS +VDCT,VIA,VIADCT,VIADUCT +VIEW,VW,VIEWS,VWS +VILL,VILLAG,VILLAGE,VILLG,VILLIAGE,VLG,VILLAGES,VLGS +VILLE,VL +VIS,VIST,VISTA,VST,VSTA +WAY,WY,WAYS + +north, N +south, S +east, E +west, W +north west => northwest +north east => northeast +south west => southwest +south east => southeast +northwest, NW +northeast, NE +southwest, SW +southeast, SE + +broadway st => broadway +broadway street => broadway +broadway ave => broadway +broadway avenue => broadway diff --git a/projects/new-york-city/test_cases/search_address.json b/projects/new-york-city/test_cases/search_address.json new file mode 100644 index 00000000..0a6c2799 --- /dev/null +++ b/projects/new-york-city/test_cases/search_address.json @@ -0,0 +1,8057 @@ +{ + "name": "/v1/search address", + "description": "addresses in Portland, OR", + "priorityThresh": 1, + "normalizers": { + "name": [ + "toUpperCase", + "removeOrdinals", + "stripPunctuation", + "abbreviateDirectionals", + "abbreviateStreetSuffixes" + ] + }, + "tests": [ + { + "id": 1, + "status": "pass", + "in": { + "text": "777 NE MLK Blvd, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "777 NE Martin Luther King Junior Blvd", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 2, + "status": "pass", + "in": { + "text": "777 NE MLK Blvd, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "777 NE Martin Luther King Junior Blvd", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 3, + "status": "pass", + "in": { + "text": "777 NE MLK Blvd Portland OR" + }, + "expected": { + "properties": [ + { + "name": "777 NE Martin Luther King Junior Blvd", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 4, + "status": "pass", + "in": { + "text": "777 NE MLK Blvd Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "777 NE Martin Luther King Junior Blvd", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 5, + "status": "pass", + "in": { + "text": "777 NE MLK Jr Blvd, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "777 NE Martin Luther King Junior Blvd", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 6, + "status": "pass", + "in": { + "text": "777 NE MLK Jr Blvd, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "777 NE Martin Luther King Junior Blvd", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 7, + "status": "pass", + "in": { + "text": "777 NE MLK Jr Blvd Portland OR" + }, + "expected": { + "properties": [ + { + "name": "777 NE Martin Luther King Junior Blvd", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 8, + "status": "pass", + "in": { + "text": "777 NE MLK Jr Blvd Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "777 NE Martin Luther King Junior Blvd", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 9, + "status": "pass", + "in": { + "text": "777 NE ML King Blvd, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "777 NE Martin Luther King Junior Blvd", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 10, + "status": "pass", + "in": { + "text": "777 NE ML King Blvd, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "777 NE Martin Luther King Junior Blvd", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 11, + "status": "pass", + "in": { + "text": "777 NE ML King Blvd Portland OR" + }, + "expected": { + "properties": [ + { + "name": "777 NE Martin Luther King Junior Blvd", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 12, + "status": "pass", + "in": { + "text": "777 NE ML King Blvd Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "777 NE Martin Luther King Junior Blvd", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 12.1, + "status": "pass", + "in": { + "text": "777 NE martin luther king Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "777 NE Martin Luther King Junior Blvd", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 13, + "status": "pass", + "in": { + "text": "4004 SW BH Hwy, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "4004 SW BEAVERTON HILLSDALE Hwy", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 14, + "status": "pass", + "in": { + "text": "4004 SW BH Hwy, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "4004 SW BEAVERTON HILLSDALE Hwy", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 15, + "status": "pass", + "in": { + "text": "4004 SW BH Hwy Portland OR" + }, + "expected": { + "properties": [ + { + "name": "4004 SW BEAVERTON HILLSDALE Hwy", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 16, + "status": "pass", + "in": { + "text": "4004 SW BH Hwy Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "4004 SW BEAVERTON HILLSDALE Hwy", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 17, + "status": "pass", + "in": { + "text": "4004 SW BHH, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "4004 SW BEAVERTON HILLSDALE HWY", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 18, + "status": "pass", + "in": { + "text": "4004 SW BHH, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "4004 SW BEAVERTON HILLSDALE HWY", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 19, + "status": "pass", + "in": { + "text": "4004 SW BHH Portland OR" + }, + "expected": { + "properties": [ + { + "name": "4004 SW BEAVERTON HILLSDALE HWY", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 20, + "status": "pass", + "in": { + "text": "4004 SW BHH Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "4004 SW BEAVERTON HILLSDALE HWY", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 21, + "status": "pass", + "in": { + "text": "4004 SW Beaverton-Hillsdale Hwy, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "4004 SW Beaverton Hillsdale Hwy", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 22, + "status": "pass", + "in": { + "text": "4004 SW Beaverton-Hillsdale Hwy, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "4004 SW BEAVERTON HILLSDALE Hwy", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 23, + "status": "pass", + "in": { + "text": "4004 SW Beaverton-Hillsdale Hwy Portland OR" + }, + "expected": { + "properties": [ + { + "name": "4004 SW BEAVERTON HILLSDALE Hwy", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 24, + "status": "pass", + "in": { + "text": "4004 SW Beaverton-Hillsdale Hwy Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "4004 SW BEAVERTON HILLSDALE Hwy", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 25, + "status": "pass", + "in": { + "text": "4004 SW Beaverton- Hillsdale Hwy, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "4004 SW Beaverton- Hillsdale Hwy", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 26, + "status": "pass", + "in": { + "text": "4004 SW Beaverton- Hillsdale Hwy, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "4004 SW Beaverton- Hillsdale Hwy", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 27, + "status": "pass", + "in": { + "text": "4004 SW Beaverton- Hillsdale Hwy Portland OR" + }, + "expected": { + "properties": [ + { + "name": "4004 SW Beaverton- Hillsdale Hwy", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 28, + "status": "pass", + "in": { + "text": "4004 SW Beaverton- Hillsdale Hwy Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "4004 SW Beaverton- Hillsdale Hwy", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 29, + "status": "pass", + "in": { + "text": "4004 SW Beaverton Hillsdale Hwy, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "4004 SW Beaverton Hillsdale Hwy", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 30, + "status": "pass", + "in": { + "text": "4004 SW Beaverton Hillsdale Hwy, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "4004 SW Beaverton Hillsdale Hwy", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 31, + "status": "pass", + "in": { + "text": "4004 SW Beaverton Hillsdale Hwy Portland OR" + }, + "expected": { + "properties": [ + { + "name": "4004 SW Beaverton Hillsdale Hwy", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 32, + "status": "pass", + "in": { + "text": "4004 SW Beaverton Hillsdale Hwy Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "4004 SW Beaverton Hillsdale Hwy", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 33, + "status": "pass", + "in": { + "text": "17175 SW TV Hwy, aloha, OR" + }, + "expected": { + "properties": [ + { + "name": "17175 SW TUALATIN VALLEY HIGHWAY", + "locality": "Aloha", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 34, + "status": "pass", + "in": { + "text": "17175 SW TV Hwy, aloha, Oregon" + }, + "expected": { + "properties": [ + { + "name": "17175 SW TUALATIN VALLEY HIGHWAY", + "locality": "Aloha", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 35, + "status": "pass", + "in": { + "text": "17175 SW TV Hwy aloha OR" + }, + "expected": { + "properties": [ + { + "name": "17175 SW TUALATIN VALLEY HIGHWAY", + "locality": "Aloha", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 36, + "status": "pass", + "in": { + "text": "17175 SW TV Hwy aloha Oregon" + }, + "expected": { + "properties": [ + { + "name": "17175 SW TUALATIN VALLEY HIGHWAY", + "locality": "Aloha", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 37, + "status": "pass", + "in": { + "text": "17175 SW TVH, aloha, OR" + }, + "expected": { + "properties": [ + { + "name": "17175 SW TUALATIN VALLEY HIGHWAY", + "locality": "Aloha", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 38, + "status": "pass", + "in": { + "text": "17175 SW TVH, aloha, Oregon" + }, + "expected": { + "properties": [ + { + "name": "17175 SW TUALATIN VALLEY HIGHWAY", + "locality": "Aloha", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 39, + "status": "pass", + "in": { + "text": "17175 SW TVH aloha OR" + }, + "expected": { + "properties": [ + { + "name": "17175 SW TUALATIN VALLEY HIGHWAY", + "locality": "Aloha", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 40, + "status": "pass", + "in": { + "text": "17175 SW TVH aloha Oregon" + }, + "expected": { + "properties": [ + { + "name": "17175 SW TUALATIN VALLEY HIGHWAY", + "locality": "Aloha", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 41, + "status": "pass", + "in": { + "text": "17175 SW TUALATIN VALLEY HWY, aloha, OR" + }, + "expected": { + "properties": [ + { + "name": "17175 SW TUALATIN VALLEY HIGHWAY", + "locality": "Aloha", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 42, + "status": "pass", + "in": { + "text": "17175 SW TUALATIN VALLEY HWY, aloha, Oregon" + }, + "expected": { + "properties": [ + { + "name": "17175 SW TUALATIN VALLEY HIGHWAY", + "locality": "Aloha", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 43, + "status": "pass", + "in": { + "text": "17175 SW TUALATIN VALLEY HWY aloha OR" + }, + "expected": { + "properties": [ + { + "name": "17175 SW TUALATIN VALLEY HIGHWAY", + "locality": "Aloha", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 44, + "status": "pass", + "in": { + "text": "17175 SW TUALATIN VALLEY HWY aloha Oregon" + }, + "expected": { + "properties": [ + { + "name": "17175 SW TUALATIN VALLEY HIGHWAY", + "locality": "Aloha", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 45, + "status": "pass", + "in": { + "text": "1800 SW 1ST AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "1800 SW 1ST AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 46, + "status": "pass", + "in": { + "text": "1800 SW 1ST AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "1800 SW 1ST AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 47, + "status": "pass", + "in": { + "text": "1800 SW 1ST AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "1800 SW 1ST AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 48, + "status": "pass", + "in": { + "text": "1800 SW 1ST AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "1800 SW 1ST AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 49, + "status": "pass", + "in": { + "text": "4134 N VANCOUVER AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "4134 N VANCOUVER AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 50, + "status": "pass", + "in": { + "text": "4134 N VANCOUVER AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "4134 N VANCOUVER AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 51, + "status": "pass", + "in": { + "text": "4134 N VANCOUVER AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "4134 N VANCOUVER AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 52, + "status": "pass", + "in": { + "text": "4134 N VANCOUVER AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "4134 N VANCOUVER AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 53, + "status": "pass", + "in": { + "text": "834 SE LAMBERT ST, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "834 SE LAMBERT ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 54, + "status": "pass", + "in": { + "text": "834 SE LAMBERT ST, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "834 SE LAMBERT ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 55, + "status": "pass", + "in": { + "text": "834 SE LAMBERT ST Portland OR" + }, + "expected": { + "properties": [ + { + "name": "834 SE LAMBERT ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 56, + "status": "pass", + "in": { + "text": "834 SE LAMBERT ST Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "834 SE LAMBERT ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 57, + "status": "pass", + "in": { + "text": "6146 SW 18th DR, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "6146 SW 18th DR", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 58, + "status": "pass", + "in": { + "text": "6146 SW 18th DR, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "6146 SW 18th DR", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 59, + "status": "pass", + "in": { + "text": "6146 SW 18th DR Portland OR" + }, + "expected": { + "properties": [ + { + "name": "6146 SW 18th DR", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 60, + "status": "pass", + "in": { + "text": "6146 SW 18th DR Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "6146 SW 18th DR", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 61, + "status": "pass", + "in": { + "text": "725 SW 10TH AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "725 SW 10TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 62, + "status": "pass", + "in": { + "text": "725 SW 10TH AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "725 SW 10TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 63, + "status": "pass", + "in": { + "text": "725 SW 10TH AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "725 SW 10TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 64, + "status": "pass", + "in": { + "text": "725 SW 10TH AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "725 SW 10TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 65, + "status": "fail", + "in": { + "text": "14587 SW DAUER CT, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "14587 SW DAUER CT", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 66, + "status": "fail", + "in": { + "text": "14587 SW DAUER CT, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "14587 SW DAUER CT", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 67, + "status": "fail", + "in": { + "text": "14587 SW DAUER CT Portland OR" + }, + "expected": { + "properties": [ + { + "name": "14587 SW DAUER CT", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 68, + "status": "fail", + "in": { + "text": "14587 SW DAUER CT Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "14587 SW DAUER CT", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 69, + "status": "pass", + "in": { + "text": "1800 SW 1ST AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "1800 SW 1ST AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 70, + "status": "pass", + "in": { + "text": "1800 SW 1ST AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "1800 SW 1ST AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 71, + "status": "pass", + "in": { + "text": "1800 SW 1ST AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "1800 SW 1ST AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 72, + "status": "pass", + "in": { + "text": "1800 SW 1ST AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "1800 SW 1ST AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 73, + "status": "pass", + "in": { + "text": "1400 SW 5TH AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "1400 SW 5TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 74, + "status": "pass", + "in": { + "text": "1400 SW 5TH AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "1400 SW 5TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 75, + "status": "pass", + "in": { + "text": "1400 SW 5TH AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "1400 SW 5TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 76, + "status": "pass", + "in": { + "text": "1400 SW 5TH AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "1400 SW 5TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 77, + "status": "pass", + "in": { + "text": "1000 SW BROADWAY, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "1000 SW BROADWAY", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 78, + "status": "pass", + "in": { + "text": "1000 SW BROADWAY, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "1000 SW BROADWAY", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 79, + "status": "pass", + "in": { + "text": "1000 SW BROADWAY Portland OR" + }, + "expected": { + "properties": [ + { + "name": "1000 SW BROADWAY", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 80, + "status": "pass", + "in": { + "text": "1000 SW BROADWAY Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "1000 SW BROADWAY", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 81, + "status": "pass", + "in": { + "text": "14715 E BURNSIDE ST, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "14715 E BURNSIDE ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 82, + "status": "pass", + "in": { + "text": "14715 E BURNSIDE ST, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "14715 E BURNSIDE ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 83, + "status": "pass", + "in": { + "text": "14715 E BURNSIDE ST Portland OR" + }, + "expected": { + "properties": [ + { + "name": "14715 E BURNSIDE ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 84, + "status": "pass", + "in": { + "text": "14715 E BURNSIDE ST Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "14715 E BURNSIDE ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 85, + "status": "pass", + "in": { + "text": "30 147TH AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "30 NE 147 AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 86, + "status": "pass", + "in": { + "text": "30 147TH AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "30 NE 147 AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 87, + "status": "pass", + "in": { + "text": "30 147TH AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "30 NE 147 AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 88, + "status": "pass", + "in": { + "text": "30 147TH AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "30 NE 147 AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 89, + "status": "pass", + "in": { + "text": "1220 SW 3RD AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "1220 SW 3RD AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 90, + "status": "pass", + "in": { + "text": "1220 SW 3RD AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "1220 SW 3RD AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 91, + "status": "pass", + "in": { + "text": "1220 SW 3RD AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "1220 SW 3RD AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 92, + "status": "pass", + "in": { + "text": "1220 SW 3RD AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "1220 SW 3RD AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 93, + "status": "pass", + "in": { + "text": "825 NE MULTNOMAH ST, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "825 NE MULTNOMAH ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 94, + "status": "pass", + "in": { + "text": "825 NE MULTNOMAH ST, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "825 NE MULTNOMAH ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 95, + "status": "pass", + "in": { + "text": "825 NE MULTNOMAH ST Portland OR" + }, + "expected": { + "properties": [ + { + "name": "825 NE MULTNOMAH ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 96, + "status": "pass", + "in": { + "text": "825 NE MULTNOMAH ST Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "825 NE MULTNOMAH ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 97, + "status": "pass", + "in": { + "text": "6236 SE 134TH AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "6236 SE 134TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 98, + "status": "pass", + "in": { + "text": "6236 SE 134TH AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "6236 SE 134TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 99, + "status": "pass", + "in": { + "text": "6236 SE 134TH AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "6236 SE 134TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 100, + "status": "pass", + "in": { + "text": "6236 SE 134TH AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "6236 SE 134TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 101, + "status": "pass", + "in": { + "text": "3334 SE 7TH AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "3334 SE 7TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 102, + "status": "pass", + "in": { + "text": "3334 SE 7TH AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "3334 SE 7TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 103, + "status": "pass", + "in": { + "text": "3334 SE 7TH AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "3334 SE 7TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 104, + "status": "pass", + "in": { + "text": "3334 SE 7TH AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "3334 SE 7TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 105, + "status": "pass", + "in": { + "text": "3625 N FARRAGUT ST, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "3625 N FARRAGUT ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 106, + "status": "pass", + "in": { + "text": "3625 N FARRAGUT ST, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "3625 N FARRAGUT ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 107, + "status": "pass", + "in": { + "text": "3625 N FARRAGUT ST Portland OR" + }, + "expected": { + "properties": [ + { + "name": "3625 N FARRAGUT ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 108, + "status": "pass", + "in": { + "text": "3625 N FARRAGUT ST Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "3625 N FARRAGUT ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 109, + "status": "pass", + "in": { + "text": "1606 NE 90TH AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "1606 NE 90TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 110, + "status": "pass", + "in": { + "text": "1606 NE 90TH AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "1606 NE 90TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 111, + "status": "pass", + "in": { + "text": "1606 NE 90TH AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "1606 NE 90TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 112, + "status": "pass", + "in": { + "text": "1606 NE 90TH AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "1606 NE 90TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 113, + "status": "pass", + "in": { + "text": "14359 SE POWELL BLVD, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "14359 SE POWELL BLVD", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 114, + "status": "pass", + "in": { + "text": "14359 SE POWELL BLVD, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "14359 SE POWELL BLVD", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 115, + "status": "pass", + "in": { + "text": "14359 SE POWELL BLVD Portland OR" + }, + "expected": { + "properties": [ + { + "name": "14359 SE POWELL BLVD", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 116, + "status": "pass", + "in": { + "text": "14359 SE POWELL BLVD Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "14359 SE POWELL BLVD", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 117, + "status": "fail", + "in": { + "text": "4015 N ALBINA ST, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "4015 N ALBINA ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 118, + "status": "fail", + "in": { + "text": "4015 N ALBINA ST, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "4015 N ALBINA ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 119, + "status": "fail", + "in": { + "text": "4015 N ALBINA ST Portland OR" + }, + "expected": { + "properties": [ + { + "name": "4015 N ALBINA ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 120, + "status": "fail", + "in": { + "text": "4015 N ALBINA ST Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "4015 N ALBINA ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 121, + "status": "pass", + "in": { + "text": "5661 SE HAROLD ST, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "5661 SE HAROLD ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 122, + "status": "pass", + "in": { + "text": "5661 SE HAROLD ST, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "5661 SE HAROLD ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 123, + "status": "pass", + "in": { + "text": "5661 SE HAROLD ST Portland OR" + }, + "expected": { + "properties": [ + { + "name": "5661 SE HAROLD ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 124, + "status": "pass", + "in": { + "text": "5661 SE HAROLD ST Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "5661 SE HAROLD ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 125, + "status": "pass", + "in": { + "text": "3689 SE FRANCIS ST, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "3689 SE FRANCIS ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 126, + "status": "pass", + "in": { + "text": "3689 SE FRANCIS ST, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "3689 SE FRANCIS ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 127, + "status": "pass", + "in": { + "text": "3689 SE FRANCIS ST Portland OR" + }, + "expected": { + "properties": [ + { + "name": "3689 SE FRANCIS ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 128, + "status": "pass", + "in": { + "text": "3689 SE FRANCIS ST Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "3689 SE FRANCIS ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 129, + "status": "pass", + "in": { + "text": "2522 SE CLINTON ST, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "2522 SE CLINTON ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 130, + "status": "pass", + "in": { + "text": "2522 SE CLINTON ST, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "2522 SE CLINTON ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 131, + "status": "pass", + "in": { + "text": "2522 SE CLINTON ST Portland OR" + }, + "expected": { + "properties": [ + { + "name": "2522 SE CLINTON ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 132, + "status": "pass", + "in": { + "text": "2522 SE CLINTON ST Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "2522 SE CLINTON ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 133, + "status": "pass", + "in": { + "text": "6834 SE POWELL BLVD, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "6834 SE POWELL BLVD", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 134, + "status": "pass", + "in": { + "text": "6834 SE POWELL BLVD, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "6834 SE POWELL BLVD", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 135, + "status": "pass", + "in": { + "text": "6834 SE POWELL BLVD Portland OR" + }, + "expected": { + "properties": [ + { + "name": "6834 SE POWELL BLVD", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 136, + "status": "pass", + "in": { + "text": "6834 SE POWELL BLVD Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "6834 SE POWELL BLVD", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 137, + "status": "pass", + "in": { + "text": "310 NE 55TH AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "310 NE 55TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 138, + "status": "pass", + "in": { + "text": "310 NE 55TH AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "310 NE 55TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 139, + "status": "pass", + "in": { + "text": "310 NE 55TH AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "310 NE 55TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 140, + "status": "pass", + "in": { + "text": "310 NE 55TH AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "310 NE 55TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 141, + "status": "pass", + "in": { + "text": "6021 SE 72ND AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "6021 SE 72ND AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 142, + "status": "pass", + "in": { + "text": "6021 SE 72ND AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "6021 SE 72ND AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 143, + "status": "pass", + "in": { + "text": "6021 SE 72ND AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "6021 SE 72ND AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 144, + "status": "pass", + "in": { + "text": "6021 SE 72ND AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "6021 SE 72ND AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 145, + "status": "pass", + "in": { + "text": "1721 NE 108TH, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "1721 NE 108TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 146, + "status": "pass", + "in": { + "text": "1721 NE 108TH, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "1721 NE 108TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 147, + "status": "pass", + "in": { + "text": "1721 NE 108TH Portland OR" + }, + "expected": { + "properties": [ + { + "name": "1721 NE 108TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 148, + "status": "pass", + "in": { + "text": "1721 NE 108TH Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "1721 NE 108TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 149, + "status": "pass", + "in": { + "text": "9352 N DWIGHT AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "9352 N DWIGHT AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 150, + "status": "pass", + "in": { + "text": "9352 N DWIGHT AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "9352 N DWIGHT AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 151, + "status": "pass", + "in": { + "text": "9352 N DWIGHT AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "9352 N DWIGHT AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 152, + "status": "pass", + "in": { + "text": "9352 N DWIGHT AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "9352 N DWIGHT AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 153, + "status": "pass", + "in": { + "text": "9348 N DWIGHT AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "9348 N DWIGHT AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 154, + "status": "pass", + "in": { + "text": "9348 N DWIGHT AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "9348 N DWIGHT AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 155, + "status": "pass", + "in": { + "text": "9348 N DWIGHT AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "9348 N DWIGHT AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 156, + "status": "pass", + "in": { + "text": "9348 N DWIGHT AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "9348 N DWIGHT AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 157, + "status": "pass", + "in": { + "text": "9344 N DWIGHT AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "9344 N DWIGHT AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 158, + "status": "pass", + "in": { + "text": "9344 N DWIGHT AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "9344 N DWIGHT AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 159, + "status": "pass", + "in": { + "text": "9344 N DWIGHT AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "9344 N DWIGHT AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 160, + "status": "pass", + "in": { + "text": "9344 N DWIGHT AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "9344 N DWIGHT AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 161, + "status": "pass", + "in": { + "text": "9340 N DWIGHT AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "9340 N DWIGHT AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 162, + "status": "pass", + "in": { + "text": "9340 N DWIGHT AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "9340 N DWIGHT AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 163, + "status": "pass", + "in": { + "text": "9340 N DWIGHT AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "9340 N DWIGHT AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 164, + "status": "pass", + "in": { + "text": "9340 N DWIGHT AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "9340 N DWIGHT AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 165, + "status": "pass", + "in": { + "text": "9336 N DWIGHT AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "9336 N DWIGHT AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 166, + "status": "pass", + "in": { + "text": "9336 N DWIGHT AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "9336 N DWIGHT AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 167, + "status": "pass", + "in": { + "text": "9336 N DWIGHT AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "9336 N DWIGHT AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 168, + "status": "pass", + "in": { + "text": "9336 N DWIGHT AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "9336 N DWIGHT AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 169, + "status": "pass", + "in": { + "text": "9332 N DWIGHT AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "9332 N DWIGHT AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 170, + "status": "pass", + "in": { + "text": "9332 N DWIGHT AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "9332 N DWIGHT AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 171, + "status": "pass", + "in": { + "text": "9332 N DWIGHT AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "9332 N DWIGHT AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 172, + "status": "pass", + "in": { + "text": "9332 N DWIGHT AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "9332 N DWIGHT AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 173, + "status": "pass", + "in": { + "text": "9649 N FISKE AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "9649 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 174, + "status": "pass", + "in": { + "text": "9649 N FISKE AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "9649 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 175, + "status": "pass", + "in": { + "text": "9649 N FISKE AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "9649 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 176, + "status": "pass", + "in": { + "text": "9649 N FISKE AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "9649 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 177, + "status": "pass", + "in": { + "text": "9645 N FISKE AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "9645 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 178, + "status": "pass", + "in": { + "text": "9645 N FISKE AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "9645 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 179, + "status": "pass", + "in": { + "text": "9645 N FISKE AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "9645 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 180, + "status": "pass", + "in": { + "text": "9645 N FISKE AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "9645 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 181, + "status": "pass", + "in": { + "text": "9641 N FISKE AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "9641 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 182, + "status": "pass", + "in": { + "text": "9641 N FISKE AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "9641 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 183, + "status": "pass", + "in": { + "text": "9641 N FISKE AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "9641 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 184, + "status": "pass", + "in": { + "text": "9641 N FISKE AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "9641 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 185, + "status": "pass", + "in": { + "text": "9637 N FISKE AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "9637 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 186, + "status": "pass", + "in": { + "text": "9637 N FISKE AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "9637 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 187, + "status": "pass", + "in": { + "text": "9637 N FISKE AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "9637 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 188, + "status": "pass", + "in": { + "text": "9637 N FISKE AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "9637 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 189, + "status": "pass", + "in": { + "text": "9117 N FISKE AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "9117 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 190, + "status": "pass", + "in": { + "text": "9117 N FISKE AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "9117 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 191, + "status": "pass", + "in": { + "text": "9117 N FISKE AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "9117 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 192, + "status": "pass", + "in": { + "text": "9117 N FISKE AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "9117 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 193, + "status": "pass", + "in": { + "text": "9129 N FISKE AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "9129 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 194, + "status": "pass", + "in": { + "text": "9129 N FISKE AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "9129 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 195, + "status": "pass", + "in": { + "text": "9129 N FISKE AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "9129 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 196, + "status": "pass", + "in": { + "text": "9129 N FISKE AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "9129 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 197, + "status": "pass", + "in": { + "text": "9125 N FISKE AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "9125 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 198, + "status": "pass", + "in": { + "text": "9125 N FISKE AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "9125 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 199, + "status": "pass", + "in": { + "text": "9125 N FISKE AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "9125 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 200, + "status": "pass", + "in": { + "text": "9125 N FISKE AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "9125 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 201, + "status": "pass", + "in": { + "text": "9121 N FISKE AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "9121 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 202, + "status": "pass", + "in": { + "text": "9121 N FISKE AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "9121 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 203, + "status": "pass", + "in": { + "text": "9121 N FISKE AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "9121 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 204, + "status": "pass", + "in": { + "text": "9121 N FISKE AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "9121 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 205, + "status": "pass", + "in": { + "text": "9133 N FISKE AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "9133 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 206, + "status": "pass", + "in": { + "text": "9133 N FISKE AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "9133 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 207, + "status": "pass", + "in": { + "text": "9133 N FISKE AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "9133 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 208, + "status": "pass", + "in": { + "text": "9133 N FISKE AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "9133 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 209, + "status": "pass", + "in": { + "text": "9325 N FISKE AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "9325 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 210, + "status": "pass", + "in": { + "text": "9325 N FISKE AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "9325 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 211, + "status": "pass", + "in": { + "text": "9325 N FISKE AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "9325 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 212, + "status": "pass", + "in": { + "text": "9325 N FISKE AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "9325 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 213, + "status": "pass", + "in": { + "text": "9305 N FISKE AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "9305 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 214, + "status": "pass", + "in": { + "text": "9305 N FISKE AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "9305 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 215, + "status": "pass", + "in": { + "text": "9305 N FISKE AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "9305 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 216, + "status": "pass", + "in": { + "text": "9305 N FISKE AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "9305 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 217, + "status": "pass", + "in": { + "text": "9309 N FISKE AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "9309 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 218, + "status": "pass", + "in": { + "text": "9309 N FISKE AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "9309 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 219, + "status": "pass", + "in": { + "text": "9309 N FISKE AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "9309 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 220, + "status": "pass", + "in": { + "text": "9309 N FISKE AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "9309 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 221, + "status": "pass", + "in": { + "text": "9313 N FISKE AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "9313 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 222, + "status": "pass", + "in": { + "text": "9313 N FISKE AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "9313 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 223, + "status": "pass", + "in": { + "text": "9313 N FISKE AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "9313 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 224, + "status": "pass", + "in": { + "text": "9313 N FISKE AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "9313 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 225, + "status": "pass", + "in": { + "text": "9321 N FISKE AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "9321 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 226, + "status": "pass", + "in": { + "text": "9321 N FISKE AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "9321 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 227, + "status": "pass", + "in": { + "text": "9321 N FISKE AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "9321 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 228, + "status": "pass", + "in": { + "text": "9321 N FISKE AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "9321 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 229, + "status": "pass", + "in": { + "text": "9341 N FISKE AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "9341 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 230, + "status": "pass", + "in": { + "text": "9341 N FISKE AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "9341 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 231, + "status": "pass", + "in": { + "text": "9341 N FISKE AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "9341 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 232, + "status": "pass", + "in": { + "text": "9341 N FISKE AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "9341 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 233, + "status": "pass", + "in": { + "text": "9337 N FISKE AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "9337 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 234, + "status": "pass", + "in": { + "text": "9337 N FISKE AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "9337 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 235, + "status": "pass", + "in": { + "text": "9337 N FISKE AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "9337 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 236, + "status": "pass", + "in": { + "text": "9337 N FISKE AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "9337 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 237, + "status": "pass", + "in": { + "text": "9333 N FISKE AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "9333 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 238, + "status": "pass", + "in": { + "text": "9333 N FISKE AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "9333 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 239, + "status": "pass", + "in": { + "text": "9333 N FISKE AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "9333 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 240, + "status": "pass", + "in": { + "text": "9333 N FISKE AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "9333 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 241, + "status": "pass", + "in": { + "text": "9349 N FISKE AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "9349 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 242, + "status": "pass", + "in": { + "text": "9349 N FISKE AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "9349 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 243, + "status": "pass", + "in": { + "text": "9349 N FISKE AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "9349 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 244, + "status": "pass", + "in": { + "text": "9349 N FISKE AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "9349 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 245, + "status": "pass", + "in": { + "text": "9345 N FISKE AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "9345 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 246, + "status": "pass", + "in": { + "text": "9345 N FISKE AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "9345 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 247, + "status": "pass", + "in": { + "text": "9345 N FISKE AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "9345 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 248, + "status": "pass", + "in": { + "text": "9345 N FISKE AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "9345 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 249, + "status": "pass", + "in": { + "text": "4902 N TRENTON ST, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "4902 N TRENTON ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 250, + "status": "pass", + "in": { + "text": "4902 N TRENTON ST, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "4902 N TRENTON ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 251, + "status": "pass", + "in": { + "text": "4902 N TRENTON ST Portland OR" + }, + "expected": { + "properties": [ + { + "name": "4902 N TRENTON ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 252, + "status": "pass", + "in": { + "text": "4902 N TRENTON ST Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "4902 N TRENTON ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 253, + "status": "pass", + "in": { + "text": "5330 NE GLISAN ST, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "5330 NE GLISAN ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 254, + "status": "pass", + "in": { + "text": "5330 NE GLISAN ST, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "5330 NE GLISAN ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 255, + "status": "pass", + "in": { + "text": "5330 NE GLISAN ST Portland OR" + }, + "expected": { + "properties": [ + { + "name": "5330 NE GLISAN ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 256, + "status": "pass", + "in": { + "text": "5330 NE GLISAN ST Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "5330 NE GLISAN ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 257, + "status": "pass", + "in": { + "text": "3268 NE EMERSON ST, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "3268 NE EMERSON ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 258, + "status": "pass", + "in": { + "text": "3268 NE EMERSON ST, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "3268 NE EMERSON ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 259, + "status": "pass", + "in": { + "text": "3268 NE EMERSON ST Portland OR" + }, + "expected": { + "properties": [ + { + "name": "3268 NE EMERSON ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 260, + "status": "pass", + "in": { + "text": "3268 NE EMERSON ST Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "3268 NE EMERSON ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 261, + "status": "fail", + "in": { + "text": "4105 SE INTERNATIONAL WAY, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "4105 SE INTERNATIONAL WAY", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 262, + "status": "fail", + "in": { + "text": "4105 SE INTERNATIONAL WAY, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "4105 SE INTERNATIONAL WAY", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 263, + "status": "fail", + "in": { + "text": "4105 SE INTERNATIONAL WAY Portland OR" + }, + "expected": { + "properties": [ + { + "name": "4105 SE INTERNATIONAL WAY", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 264, + "status": "fail", + "in": { + "text": "4105 SE INTERNATIONAL WAY Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "4105 SE INTERNATIONAL WAY", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 265, + "status": "pass", + "in": { + "text": "1508 SE 21ST AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "1508 SE 21ST AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 266, + "status": "pass", + "in": { + "text": "1508 SE 21ST AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "1508 SE 21ST AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 267, + "status": "pass", + "in": { + "text": "1508 SE 21ST AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "1508 SE 21ST AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 268, + "status": "pass", + "in": { + "text": "1508 SE 21ST AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "1508 SE 21ST AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 269, + "status": "pass", + "in": { + "text": "1322 SE WATER AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "1322 SE WATER AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 270, + "status": "pass", + "in": { + "text": "1322 SE WATER AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "1322 SE WATER AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 271, + "status": "pass", + "in": { + "text": "1322 SE WATER AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "1322 SE WATER AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 272, + "status": "pass", + "in": { + "text": "1322 SE WATER AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "1322 SE WATER AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 273, + "status": "pass", + "in": { + "text": "216 SE 103RD AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "216 SE 103RD AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 274, + "status": "pass", + "in": { + "text": "216 SE 103RD AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "216 SE 103RD AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 275, + "status": "pass", + "in": { + "text": "216 SE 103RD AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "216 SE 103RD AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 276, + "status": "pass", + "in": { + "text": "216 SE 103RD AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "216 SE 103RD AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 277, + "status": "pass", + "in": { + "text": "0841 SW GAINES ST, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "0841 SW GAINES ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 278, + "status": "pass", + "in": { + "text": "0841 SW GAINES ST, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "0841 SW GAINES ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 279, + "status": "pass", + "in": { + "text": "0841 SW GAINES ST Portland OR" + }, + "expected": { + "properties": [ + { + "name": "0841 SW GAINES ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 280, + "status": "pass", + "in": { + "text": "0841 SW GAINES ST Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "0841 SW GAINES ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 281, + "status": "pass", + "in": { + "text": "1231 NE BROADWAY ST, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "1231 NE BROADWAY", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 282, + "status": "pass", + "in": { + "text": "1231 NE BROADWAY ST, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "1231 NE BROADWAY", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 283, + "status": "pass", + "in": { + "text": "1231 NE BROADWAY ST Portland OR" + }, + "expected": { + "properties": [ + { + "name": "1231 NE BROADWAY", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 284, + "status": "pass", + "in": { + "text": "1231 NE BROADWAY ST Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "1231 NE BROADWAY", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 285, + "status": "pass", + "in": { + "text": "1523 SE 162ND AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "1523 SE 162ND AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 286, + "status": "pass", + "in": { + "text": "1523 SE 162ND AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "1523 SE 162ND AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 287, + "status": "pass", + "in": { + "text": "1523 SE 162ND AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "1523 SE 162ND AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 288, + "status": "pass", + "in": { + "text": "1523 SE 162ND AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "1523 SE 162ND AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 289, + "status": "pass", + "in": { + "text": "2243 SE DIVISION ST, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "2243 SE DIVISION ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 290, + "status": "pass", + "in": { + "text": "2243 SE DIVISION ST, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "2243 SE DIVISION ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 291, + "status": "pass", + "in": { + "text": "2243 SE DIVISION ST Portland OR" + }, + "expected": { + "properties": [ + { + "name": "2243 SE DIVISION ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 292, + "status": "pass", + "in": { + "text": "2243 SE DIVISION ST Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "2243 SE DIVISION ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 293, + "status": "fail", + "in": { + "text": "10955 SE JENNIFER ST, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "10955 SE JENNIFER ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 294, + "status": "fail", + "in": { + "text": "10955 SE JENNIFER ST, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "10955 SE JENNIFER ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 295, + "status": "fail", + "in": { + "text": "10955 SE JENNIFER ST Portland OR" + }, + "expected": { + "properties": [ + { + "name": "10955 SE JENNIFER ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 296, + "status": "fail", + "in": { + "text": "10955 SE JENNIFER ST Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "10955 SE JENNIFER ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 297, + "status": "pass", + "in": { + "text": "1739 NW COUCH ST, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "1739 NW COUCH ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 298, + "status": "pass", + "in": { + "text": "1739 NW COUCH ST, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "1739 NW COUCH ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 299, + "status": "pass", + "in": { + "text": "1739 NW COUCH ST Portland OR" + }, + "expected": { + "properties": [ + { + "name": "1739 NW COUCH ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 300, + "status": "pass", + "in": { + "text": "1739 NW COUCH ST Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "1739 NW COUCH ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 301, + "status": "pass", + "in": { + "text": "2716 SW BEAVERTON-HILLSDALE HWY, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "2716 SW BEAVERTON HILLSDALE HIGHWAY", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 302, + "status": "pass", + "in": { + "text": "2716 SW BEAVERTON-HILLSDALE HWY, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "2716 SW BEAVERTON HILLSDALE HIGHWAY", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 303, + "status": "pass", + "in": { + "text": "2716 SW BEAVERTON-HILLSDALE HWY Portland OR" + }, + "expected": { + "properties": [ + { + "name": "2716 SW BEAVERTON HILLSDALE HIGHWAY", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 304, + "status": "pass", + "in": { + "text": "2716 SW BEAVERTON-HILLSDALE HWY Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "2716 SW BEAVERTON HILLSDALE HIGHWAY", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 305, + "status": "pass", + "in": { + "text": "4701 SE 24TH AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "4701 SE 24TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 306, + "status": "pass", + "in": { + "text": "4701 SE 24TH AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "4701 SE 24TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 307, + "status": "pass", + "in": { + "text": "4701 SE 24TH AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "4701 SE 24TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 308, + "status": "pass", + "in": { + "text": "4701 SE 24TH AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "4701 SE 24TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 309, + "status": "pass", + "in": { + "text": "1130 NW 22ND AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "1130 NW 22ND AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 310, + "status": "pass", + "in": { + "text": "1130 NW 22ND AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "1130 NW 22ND AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 311, + "status": "pass", + "in": { + "text": "1130 NW 22ND AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "1130 NW 22ND AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 312, + "status": "pass", + "in": { + "text": "1130 NW 22ND AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "1130 NW 22ND AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 313, + "status": "pass", + "in": { + "text": "7368 SE DIVISION ST, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "7368 SE DIVISION ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 314, + "status": "pass", + "in": { + "text": "7368 SE DIVISION ST, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "7368 SE DIVISION ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 315, + "status": "pass", + "in": { + "text": "7368 SE DIVISION ST Portland OR" + }, + "expected": { + "properties": [ + { + "name": "7368 SE DIVISION ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 316, + "status": "pass", + "in": { + "text": "7368 SE DIVISION ST Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "7368 SE DIVISION ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 317, + "status": "fail", + "in": { + "text": "16317 SE 82ND DR, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "16317 SE 82ND DR", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 318, + "status": "fail", + "in": { + "text": "16317 SE 82ND DR, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "16317 SE 82ND DR", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 319, + "status": "fail", + "in": { + "text": "16317 SE 82ND DR Portland OR" + }, + "expected": { + "properties": [ + { + "name": "16317 SE 82ND DR", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 320, + "status": "fail", + "in": { + "text": "16317 SE 82ND DR Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "16317 SE 82ND DR", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 321, + "status": "fail", + "in": { + "text": "14255 SW 6TH ST, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "14255 SW 6TH ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 322, + "status": "fail", + "in": { + "text": "14255 SW 6TH ST, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "14255 SW 6TH ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 323, + "status": "fail", + "in": { + "text": "14255 SW 6TH ST Portland OR" + }, + "expected": { + "properties": [ + { + "name": "14255 SW 6TH ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 324, + "status": "fail", + "in": { + "text": "14255 SW 6TH ST Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "14255 SW 6TH ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 325, + "status": "pass", + "in": { + "text": "3421 SE SALMON ST, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "3421 SE SALMON ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 326, + "status": "pass", + "in": { + "text": "3421 SE SALMON ST, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "3421 SE SALMON ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 327, + "status": "pass", + "in": { + "text": "3421 SE SALMON ST Portland OR" + }, + "expected": { + "properties": [ + { + "name": "3421 SE SALMON ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 328, + "status": "pass", + "in": { + "text": "3421 SE SALMON ST Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "3421 SE SALMON ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 329, + "status": "fail", + "in": { + "text": "12133 SE 8OTH AVE MILWAUKIE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "12133 SE 8OTH AVE MILWAUKIE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 330, + "status": "fail", + "in": { + "text": "12133 SE 8OTH AVE MILWAUKIE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "12133 SE 8OTH AVE MILWAUKIE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 331, + "status": "fail", + "in": { + "text": "12133 SE 8OTH AVE MILWAUKIE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "12133 SE 8OTH AVE MILWAUKIE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 332, + "status": "fail", + "in": { + "text": "12133 SE 8OTH AVE MILWAUKIE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "12133 SE 8OTH AVE MILWAUKIE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 333, + "status": "pass", + "in": { + "text": "311 NW 12TH AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "311 NW 12TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 334, + "status": "pass", + "in": { + "text": "311 NW 12TH AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "311 NW 12TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 335, + "status": "pass", + "in": { + "text": "311 NW 12TH AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "311 NW 12TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 336, + "status": "pass", + "in": { + "text": "311 NW 12TH AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "311 NW 12TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 337, + "status": "pass", + "in": { + "text": "3480 NW INDUSTRIAL ST, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "3480 NW INDUSTRIAL ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 338, + "status": "pass", + "in": { + "text": "3480 NW INDUSTRIAL ST, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "3480 NW INDUSTRIAL ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 339, + "status": "pass", + "in": { + "text": "3480 NW INDUSTRIAL ST Portland OR" + }, + "expected": { + "properties": [ + { + "name": "3480 NW INDUSTRIAL ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 340, + "status": "pass", + "in": { + "text": "3480 NW INDUSTRIAL ST Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "3480 NW INDUSTRIAL ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 341, + "status": "pass", + "in": { + "text": "422 E BURNSIDE ST, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "422 E BURNSIDE ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 342, + "status": "pass", + "in": { + "text": "422 E BURNSIDE ST, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "422 E BURNSIDE ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 343, + "status": "pass", + "in": { + "text": "422 E BURNSIDE ST Portland OR" + }, + "expected": { + "properties": [ + { + "name": "422 E BURNSIDE ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 344, + "status": "pass", + "in": { + "text": "422 E BURNSIDE ST Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "422 E BURNSIDE ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 345, + "status": "pass", + "in": { + "text": "1917 SE TIBBETTS ST, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "1917 SE TIBBETTS ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 346, + "status": "pass", + "in": { + "text": "1917 SE TIBBETTS ST, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "1917 SE TIBBETTS ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 347, + "status": "pass", + "in": { + "text": "1917 SE TIBBETTS ST Portland OR" + }, + "expected": { + "properties": [ + { + "name": "1917 SE TIBBETTS ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 348, + "status": "pass", + "in": { + "text": "1917 SE TIBBETTS ST Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "1917 SE TIBBETTS ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 349, + "status": "pass", + "in": { + "text": "1915 SE TIBBETTS ST, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "1915 SE TIBBETTS ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 350, + "status": "pass", + "in": { + "text": "1915 SE TIBBETTS ST, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "1915 SE TIBBETTS ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 351, + "status": "pass", + "in": { + "text": "1915 SE TIBBETTS ST Portland OR" + }, + "expected": { + "properties": [ + { + "name": "1915 SE TIBBETTS ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 352, + "status": "pass", + "in": { + "text": "1915 SE TIBBETTS ST Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "1915 SE TIBBETTS ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 353, + "status": "pass", + "in": { + "text": "1913 SE TIBBETTS ST, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "1913 SE TIBBETTS ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 354, + "status": "pass", + "in": { + "text": "1913 SE TIBBETTS ST, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "1913 SE TIBBETTS ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 355, + "status": "pass", + "in": { + "text": "1913 SE TIBBETTS ST Portland OR" + }, + "expected": { + "properties": [ + { + "name": "1913 SE TIBBETTS ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 356, + "status": "pass", + "in": { + "text": "1913 SE TIBBETTS ST Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "1913 SE TIBBETTS ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 357, + "status": "pass", + "in": { + "text": "1911 SE TIBBETTS ST, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "1911 SE TIBBETTS ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 358, + "status": "pass", + "in": { + "text": "1911 SE TIBBETTS ST, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "1911 SE TIBBETTS ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 359, + "status": "pass", + "in": { + "text": "1911 SE TIBBETTS ST Portland OR" + }, + "expected": { + "properties": [ + { + "name": "1911 SE TIBBETTS ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 360, + "status": "pass", + "in": { + "text": "1911 SE TIBBETTS ST Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "1911 SE TIBBETTS ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 361, + "status": "pass", + "in": { + "text": "1909 SE TIBBETTS ST, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "1909 SE TIBBETTS ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 362, + "status": "pass", + "in": { + "text": "1909 SE TIBBETTS ST, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "1909 SE TIBBETTS ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 363, + "status": "pass", + "in": { + "text": "1909 SE TIBBETTS ST Portland OR" + }, + "expected": { + "properties": [ + { + "name": "1909 SE TIBBETTS ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 364, + "status": "pass", + "in": { + "text": "1909 SE TIBBETTS ST Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "1909 SE TIBBETTS ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 365, + "status": "pass", + "in": { + "text": "1907 SE TIBBETTS ST, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "1907 SE TIBBETTS ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 366, + "status": "pass", + "in": { + "text": "1907 SE TIBBETTS ST, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "1907 SE TIBBETTS ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 367, + "status": "pass", + "in": { + "text": "1907 SE TIBBETTS ST Portland OR" + }, + "expected": { + "properties": [ + { + "name": "1907 SE TIBBETTS ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 368, + "status": "pass", + "in": { + "text": "1907 SE TIBBETTS ST Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "1907 SE TIBBETTS ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 369, + "status": "pass", + "in": { + "text": "1905 SE TIBBETTS ST, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "1905 SE TIBBETTS ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 370, + "status": "pass", + "in": { + "text": "1905 SE TIBBETTS ST, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "1905 SE TIBBETTS ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 371, + "status": "pass", + "in": { + "text": "1905 SE TIBBETTS ST Portland OR" + }, + "expected": { + "properties": [ + { + "name": "1905 SE TIBBETTS ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 372, + "status": "pass", + "in": { + "text": "1905 SE TIBBETTS ST Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "1905 SE TIBBETTS ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 373, + "status": "pass", + "in": { + "text": "1903 SE TIBBETTS ST, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "1903 SE TIBBETTS ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 374, + "status": "pass", + "in": { + "text": "1903 SE TIBBETTS ST, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "1903 SE TIBBETTS ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 375, + "status": "pass", + "in": { + "text": "1903 SE TIBBETTS ST Portland OR" + }, + "expected": { + "properties": [ + { + "name": "1903 SE TIBBETTS ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 376, + "status": "pass", + "in": { + "text": "1903 SE TIBBETTS ST Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "1903 SE TIBBETTS ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 377, + "status": "pass", + "in": { + "text": "3083 SE 20TH AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "3083 SE 20TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 378, + "status": "pass", + "in": { + "text": "3083 SE 20TH AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "3083 SE 20TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 379, + "status": "pass", + "in": { + "text": "3083 SE 20TH AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "3083 SE 20TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 380, + "status": "pass", + "in": { + "text": "3083 SE 20TH AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "3083 SE 20TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 381, + "status": "pass", + "in": { + "text": "3075 SE 20TH AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "3075 SE 20TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 382, + "status": "pass", + "in": { + "text": "3075 SE 20TH AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "3075 SE 20TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 383, + "status": "pass", + "in": { + "text": "3075 SE 20TH AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "3075 SE 20TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 384, + "status": "pass", + "in": { + "text": "3075 SE 20TH AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "3075 SE 20TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 385, + "status": "fail", + "in": { + "text": "3073 SE 20TH AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "3073 SE 20TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 386, + "status": "fail", + "in": { + "text": "3073 SE 20TH AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "3073 SE 20TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 387, + "status": "fail", + "in": { + "text": "3073 SE 20TH AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "3073 SE 20TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 388, + "status": "fail", + "in": { + "text": "3073 SE 20TH AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "3073 SE 20TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 389, + "status": "pass", + "in": { + "text": "3035 SE 20TH AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "3035 SE 20TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 390, + "status": "pass", + "in": { + "text": "3035 SE 20TH AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "3035 SE 20TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 391, + "status": "pass", + "in": { + "text": "3035 SE 20TH AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "3035 SE 20TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 392, + "status": "pass", + "in": { + "text": "3035 SE 20TH AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "3035 SE 20TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 393, + "status": "pass", + "in": { + "text": "3033 SE 20TH AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "3033 SE 20TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 394, + "status": "pass", + "in": { + "text": "3033 SE 20TH AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "3033 SE 20TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 395, + "status": "pass", + "in": { + "text": "3033 SE 20TH AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "3033 SE 20TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 396, + "status": "pass", + "in": { + "text": "3033 SE 20TH AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "3033 SE 20TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 397, + "status": "pass", + "in": { + "text": "3031 SE 20TH AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "3031 SE 20TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 398, + "status": "pass", + "in": { + "text": "3031 SE 20TH AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "3031 SE 20TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 399, + "status": "pass", + "in": { + "text": "3031 SE 20TH AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "3031 SE 20TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 400, + "status": "pass", + "in": { + "text": "3031 SE 20TH AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "3031 SE 20TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 401, + "status": "pass", + "in": { + "text": "3027 SE 20TH AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "3027 SE 20TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 402, + "status": "pass", + "in": { + "text": "3027 SE 20TH AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "3027 SE 20TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 403, + "status": "pass", + "in": { + "text": "3027 SE 20TH AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "3027 SE 20TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 404, + "status": "pass", + "in": { + "text": "3027 SE 20TH AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "3027 SE 20TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 405, + "status": "pass", + "in": { + "text": "OREGON ZOO, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "OREGON ZOO", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 406, + "status": "pass", + "in": { + "text": "OREGON ZOO, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "OREGON ZOO", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 407, + "status": "fail", + "in": { + "text": "OREGON ZOO Portland OR" + }, + "expected": { + "properties": [ + { + "name": "OREGON ZOO", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 408, + "status": "fail", + "in": { + "text": "OREGON ZOO Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "OREGON ZOO", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 409, + "status": "fail", + "in": { + "text": "10647 SW RIVER DR, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "10647 SW RIVER DR", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 410, + "status": "fail", + "in": { + "text": "10647 SW RIVER DR, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "10647 SW RIVER DR", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 411, + "status": "fail", + "in": { + "text": "10647 SW RIVER DR Portland OR" + }, + "expected": { + "properties": [ + { + "name": "10647 SW RIVER DR", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 412, + "status": "fail", + "in": { + "text": "10647 SW RIVER DR Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "10647 SW RIVER DR", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 413, + "status": "pass", + "in": { + "text": "1831 SW RIVER DR, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "1831 SW RIVER DR", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 414, + "status": "pass", + "in": { + "text": "1831 SW RIVER DR, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "1831 SW RIVER DR", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 415, + "status": "pass", + "in": { + "text": "1831 SW RIVER DR Portland OR" + }, + "expected": { + "properties": [ + { + "name": "1831 SW RIVER DR", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 416, + "status": "pass", + "in": { + "text": "1831 SW RIVER DR Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "1831 SW RIVER DR", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 417, + "status": "pass", + "in": { + "text": "825 NE MULTNOMAH ST, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "825 NE MULTNOMAH ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 418, + "status": "pass", + "in": { + "text": "825 NE MULTNOMAH ST, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "825 NE MULTNOMAH ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 419, + "status": "pass", + "in": { + "text": "825 NE MULTNOMAH ST Portland OR" + }, + "expected": { + "properties": [ + { + "name": "825 NE MULTNOMAH ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 420, + "status": "pass", + "in": { + "text": "825 NE MULTNOMAH ST Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "825 NE MULTNOMAH ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 421, + "status": "pass", + "in": { + "text": "1220 SW 3RD AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "1220 SW 3RD AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 422, + "status": "pass", + "in": { + "text": "1220 SW 3RD AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "1220 SW 3RD AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 423, + "status": "pass", + "in": { + "text": "1220 SW 3RD AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "1220 SW 3RD AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 424, + "status": "pass", + "in": { + "text": "1220 SW 3RD AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "1220 SW 3RD AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 425, + "status": "pass", + "in": { + "text": "30 NE 147TH AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "30 NE 147TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 426, + "status": "pass", + "in": { + "text": "30 NE 147TH AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "30 NE 147TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 427, + "status": "pass", + "in": { + "text": "30 NE 147TH AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "30 NE 147TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 428, + "status": "pass", + "in": { + "text": "30 NE 147TH AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "30 NE 147TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 429, + "status": "pass", + "in": { + "text": "14715 E BURNSIDE ST, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "14715 E BURNSIDE ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 430, + "status": "pass", + "in": { + "text": "14715 E BURNSIDE ST, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "14715 E BURNSIDE ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 431, + "status": "pass", + "in": { + "text": "14715 E BURNSIDE ST Portland OR" + }, + "expected": { + "properties": [ + { + "name": "14715 E BURNSIDE ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 432, + "status": "pass", + "in": { + "text": "14715 E BURNSIDE ST Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "14715 E BURNSIDE ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 433, + "status": "pass", + "in": { + "text": "1000 SW BROADWAY ST, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "1000 SW BROADWAY", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 434, + "status": "pass", + "in": { + "text": "1000 SW BROADWAY ST, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "1000 SW BROADWAY", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 435, + "status": "pass", + "in": { + "text": "1000 SW BROADWAY ST Portland OR" + }, + "expected": { + "properties": [ + { + "name": "1000 SW BROADWAY", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 436, + "status": "pass", + "in": { + "text": "1000 SW BROADWAY ST Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "1000 SW BROADWAY", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 437, + "status": "pass", + "in": { + "text": "1400 SW 5TH AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "1400 SW 5TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 438, + "status": "pass", + "in": { + "text": "1400 SW 5TH AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "1400 SW 5TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 439, + "status": "pass", + "in": { + "text": "1400 SW 5TH AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "1400 SW 5TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 440, + "status": "pass", + "in": { + "text": "1400 SW 5TH AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "1400 SW 5TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 441, + "status": "pass", + "in": { + "text": "2211 SW 1ST AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "2211 SW 1ST AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 442, + "status": "pass", + "in": { + "text": "2211 SW 1ST AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "2211 SW 1ST AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 443, + "status": "pass", + "in": { + "text": "2211 SW 1ST AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "2211 SW 1ST AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 444, + "status": "pass", + "in": { + "text": "2211 SW 1ST AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "2211 SW 1ST AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 445, + "status": "pass", + "in": { + "text": "2221 SW 1ST AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "2221 SW 1ST AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 446, + "status": "pass", + "in": { + "text": "2221 SW 1ST AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "2221 SW 1ST AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 447, + "status": "pass", + "in": { + "text": "2221 SW 1ST AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "2221 SW 1ST AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 448, + "status": "pass", + "in": { + "text": "2221 SW 1ST AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "2221 SW 1ST AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 449, + "status": "pass", + "in": { + "text": "1600 SW 4TH AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "1600 SW 4TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 450, + "status": "pass", + "in": { + "text": "1600 SW 4TH AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "1600 SW 4TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 451, + "status": "pass", + "in": { + "text": "1600 SW 4TH AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "1600 SW 4TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 452, + "status": "pass", + "in": { + "text": "1600 SW 4TH AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "1600 SW 4TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 453, + "status": "pass", + "in": { + "text": "8205 SW 24TH AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "8205 SW 24TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 454, + "status": "pass", + "in": { + "text": "8205 SW 24TH AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "8205 SW 24TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 455, + "status": "pass", + "in": { + "text": "8205 SW 24TH AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "8205 SW 24TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 456, + "status": "pass", + "in": { + "text": "8205 SW 24TH AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "8205 SW 24TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 457, + "status": "pass", + "in": { + "text": "537 SE ASH ST, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "537 SE ASH ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 458, + "status": "pass", + "in": { + "text": "537 SE ASH ST, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "537 SE ASH ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 459, + "status": "pass", + "in": { + "text": "537 SE ASH ST Portland OR" + }, + "expected": { + "properties": [ + { + "name": "537 SE ASH ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 460, + "status": "pass", + "in": { + "text": "537 SE ASH ST Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "537 SE ASH ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 461, + "status": "pass", + "in": { + "text": "524 E BURNSIDE ST, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "524 E BURNSIDE ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 462, + "status": "pass", + "in": { + "text": "524 E BURNSIDE ST, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "524 E BURNSIDE ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 463, + "status": "pass", + "in": { + "text": "524 E BURNSIDE ST Portland OR" + }, + "expected": { + "properties": [ + { + "name": "524 E BURNSIDE ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 464, + "status": "pass", + "in": { + "text": "524 E BURNSIDE ST Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "524 E BURNSIDE ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 465, + "status": "pass", + "in": { + "text": "309 SE 129TH AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "309 SE 129TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 466, + "status": "pass", + "in": { + "text": "309 SE 129TH AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "309 SE 129TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 467, + "status": "pass", + "in": { + "text": "309 SE 129TH AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "309 SE 129TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 468, + "status": "fail", + "in": { + "text": "309 SE 129TH AVE Oak Grove Oregon" + }, + "expected": { + "properties": [ + { + "name": "309 SE 129TH AVE", + "locality": "Oak Grove", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 469, + "status": "pass", + "in": { + "text": "2817 SE PARK AVE, Oak Grove, OR" + }, + "expected": { + "properties": [ + { + "name": "2817 SE PARK AVE", + "locality": "Oak Grove", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 470, + "status": "pass", + "in": { + "text": "2817 SE PARK AVE, Oak Grove, Oregon" + }, + "expected": { + "properties": [ + { + "name": "2817 SE PARK AVE", + "locality": "Oak Grove", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 471, + "status": "pass", + "in": { + "text": "2817 SE PARK AVE Oak Grove OR" + }, + "expected": { + "properties": [ + { + "name": "2817 SE PARK AVE", + "locality": "Oak Grove", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 472, + "status": "pass", + "in": { + "text": "2817 SE PARK AVE Oak Grove Oregon" + }, + "expected": { + "properties": [ + { + "name": "2817 SE PARK AVE", + "locality": "Oak Grove", + "region": "Oregon", + "region_a": "OR" + } + ] + } + } + ] +} diff --git a/projects/new-york-city/test_cases/search_venue.json b/projects/new-york-city/test_cases/search_venue.json new file mode 100644 index 00000000..7ac2ba57 --- /dev/null +++ b/projects/new-york-city/test_cases/search_venue.json @@ -0,0 +1,49 @@ +{ + "name": "/v1/search venues", + "priorityThresh": 1, + "endpoint": "search", + "tests": [ + { + "id": 1, + "status": "fail", + "notes": "portland international should come up for PDX", + "in": { + "text": "pdx" + }, + "expected": { + "properties": [ + { + "layer": "venue", + "name": "Portland International Airport", + "country_a": "USA", + "country": "United States", + "region": "Oregon", + "region_a": "OR", + "locality": "Portland" + } + ] + } + }, + { + "id": 2, + "status": "fail", + "notes": "portland international should come up for PDX", + "in": { + "text": "pdx airport" + }, + "expected": { + "properties": [ + { + "layer": "venue", + "name": "Portland International Airport", + "country_a": "USA", + "country": "United States", + "region": "Oregon", + "region_a": "OR", + "locality": "Portland" + } + ] + } + } + ] +} From 5d2c255dc89d9b26be97104294e5601110cd28be Mon Sep 17 00:00:00 2001 From: David Blackman Date: Tue, 10 Mar 2020 10:20:25 -0400 Subject: [PATCH 15/98] peter fixes including nyc tests --- projects/new-york-city/pelias.json | 11 +- .../test_cases/search_address.json | 8028 +---------------- .../test_cases/search_venue.json | 35 +- 3 files changed, 31 insertions(+), 8043 deletions(-) diff --git a/projects/new-york-city/pelias.json b/projects/new-york-city/pelias.json index 23b24f1e..f265630b 100644 --- a/projects/new-york-city/pelias.json +++ b/projects/new-york-city/pelias.json @@ -44,16 +44,9 @@ "/data/blacklist/osm.txt" ] }, - "csv": { - "datapath": "/data/csv", - "files": [], - "download": [ - "https://raw.githubusercontent.com/pelias/csv-importer/master/data/example.csv" - ] - }, "geonames": { "datapath": "/data/geonames", - "countryCode": "ALL" + "countryCode": "US" }, "openstreetmap": { "download": [ @@ -80,7 +73,7 @@ "importVenues": false, "importPostalcodes": true, "importPlace": [ - "85688543" + "85977539" ] }, "transit": { diff --git a/projects/new-york-city/test_cases/search_address.json b/projects/new-york-city/test_cases/search_address.json index 0a6c2799..e9a5fc6e 100644 --- a/projects/new-york-city/test_cases/search_address.json +++ b/projects/new-york-city/test_cases/search_address.json @@ -1,6 +1,6 @@ { "name": "/v1/search address", - "description": "addresses in Portland, OR", + "description": "addresses in New York, NY", "priorityThresh": 1, "normalizers": { "name": [ @@ -16,15 +16,15 @@ "id": 1, "status": "pass", "in": { - "text": "777 NE MLK Blvd, Portland, OR" + "text": "111 8th ave nyc" }, "expected": { "properties": [ { - "name": "777 NE Martin Luther King Junior Blvd", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" + "name": "111 8th ave", + "locality": "New York", + "region": "New York", + "region_a": "NY" } ] } @@ -33,15 +33,18 @@ "id": 2, "status": "pass", "in": { - "text": "777 NE MLK Blvd, Portland, Oregon" + "text": "63-07 Saunders St rego park ny" }, "expected": { "properties": [ { - "name": "777 NE Martin Luther King Junior Blvd", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" + "name": "63-07 Saunders St", + "locality": "New York", + "region": "New York", + "region_a": "NY", + "borough": "Queens", + "county": "Queens County", + "label": "63-07 Saunders St, Queens, New York, NY, USA" } ] } @@ -50,8005 +53,18 @@ "id": 3, "status": "pass", "in": { - "text": "777 NE MLK Blvd Portland OR" + "text": "52 Ten Eyck St Brooklyn NY" }, "expected": { "properties": [ { - "name": "777 NE Martin Luther King Junior Blvd", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 4, - "status": "pass", - "in": { - "text": "777 NE MLK Blvd Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "777 NE Martin Luther King Junior Blvd", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 5, - "status": "pass", - "in": { - "text": "777 NE MLK Jr Blvd, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "777 NE Martin Luther King Junior Blvd", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 6, - "status": "pass", - "in": { - "text": "777 NE MLK Jr Blvd, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "777 NE Martin Luther King Junior Blvd", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 7, - "status": "pass", - "in": { - "text": "777 NE MLK Jr Blvd Portland OR" - }, - "expected": { - "properties": [ - { - "name": "777 NE Martin Luther King Junior Blvd", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 8, - "status": "pass", - "in": { - "text": "777 NE MLK Jr Blvd Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "777 NE Martin Luther King Junior Blvd", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 9, - "status": "pass", - "in": { - "text": "777 NE ML King Blvd, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "777 NE Martin Luther King Junior Blvd", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 10, - "status": "pass", - "in": { - "text": "777 NE ML King Blvd, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "777 NE Martin Luther King Junior Blvd", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 11, - "status": "pass", - "in": { - "text": "777 NE ML King Blvd Portland OR" - }, - "expected": { - "properties": [ - { - "name": "777 NE Martin Luther King Junior Blvd", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 12, - "status": "pass", - "in": { - "text": "777 NE ML King Blvd Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "777 NE Martin Luther King Junior Blvd", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 12.1, - "status": "pass", - "in": { - "text": "777 NE martin luther king Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "777 NE Martin Luther King Junior Blvd", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 13, - "status": "pass", - "in": { - "text": "4004 SW BH Hwy, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "4004 SW BEAVERTON HILLSDALE Hwy", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 14, - "status": "pass", - "in": { - "text": "4004 SW BH Hwy, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "4004 SW BEAVERTON HILLSDALE Hwy", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 15, - "status": "pass", - "in": { - "text": "4004 SW BH Hwy Portland OR" - }, - "expected": { - "properties": [ - { - "name": "4004 SW BEAVERTON HILLSDALE Hwy", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 16, - "status": "pass", - "in": { - "text": "4004 SW BH Hwy Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "4004 SW BEAVERTON HILLSDALE Hwy", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 17, - "status": "pass", - "in": { - "text": "4004 SW BHH, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "4004 SW BEAVERTON HILLSDALE HWY", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 18, - "status": "pass", - "in": { - "text": "4004 SW BHH, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "4004 SW BEAVERTON HILLSDALE HWY", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 19, - "status": "pass", - "in": { - "text": "4004 SW BHH Portland OR" - }, - "expected": { - "properties": [ - { - "name": "4004 SW BEAVERTON HILLSDALE HWY", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 20, - "status": "pass", - "in": { - "text": "4004 SW BHH Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "4004 SW BEAVERTON HILLSDALE HWY", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 21, - "status": "pass", - "in": { - "text": "4004 SW Beaverton-Hillsdale Hwy, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "4004 SW Beaverton Hillsdale Hwy", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 22, - "status": "pass", - "in": { - "text": "4004 SW Beaverton-Hillsdale Hwy, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "4004 SW BEAVERTON HILLSDALE Hwy", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 23, - "status": "pass", - "in": { - "text": "4004 SW Beaverton-Hillsdale Hwy Portland OR" - }, - "expected": { - "properties": [ - { - "name": "4004 SW BEAVERTON HILLSDALE Hwy", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 24, - "status": "pass", - "in": { - "text": "4004 SW Beaverton-Hillsdale Hwy Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "4004 SW BEAVERTON HILLSDALE Hwy", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 25, - "status": "pass", - "in": { - "text": "4004 SW Beaverton- Hillsdale Hwy, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "4004 SW Beaverton- Hillsdale Hwy", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 26, - "status": "pass", - "in": { - "text": "4004 SW Beaverton- Hillsdale Hwy, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "4004 SW Beaverton- Hillsdale Hwy", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 27, - "status": "pass", - "in": { - "text": "4004 SW Beaverton- Hillsdale Hwy Portland OR" - }, - "expected": { - "properties": [ - { - "name": "4004 SW Beaverton- Hillsdale Hwy", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 28, - "status": "pass", - "in": { - "text": "4004 SW Beaverton- Hillsdale Hwy Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "4004 SW Beaverton- Hillsdale Hwy", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 29, - "status": "pass", - "in": { - "text": "4004 SW Beaverton Hillsdale Hwy, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "4004 SW Beaverton Hillsdale Hwy", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 30, - "status": "pass", - "in": { - "text": "4004 SW Beaverton Hillsdale Hwy, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "4004 SW Beaverton Hillsdale Hwy", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 31, - "status": "pass", - "in": { - "text": "4004 SW Beaverton Hillsdale Hwy Portland OR" - }, - "expected": { - "properties": [ - { - "name": "4004 SW Beaverton Hillsdale Hwy", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 32, - "status": "pass", - "in": { - "text": "4004 SW Beaverton Hillsdale Hwy Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "4004 SW Beaverton Hillsdale Hwy", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 33, - "status": "pass", - "in": { - "text": "17175 SW TV Hwy, aloha, OR" - }, - "expected": { - "properties": [ - { - "name": "17175 SW TUALATIN VALLEY HIGHWAY", - "locality": "Aloha", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 34, - "status": "pass", - "in": { - "text": "17175 SW TV Hwy, aloha, Oregon" - }, - "expected": { - "properties": [ - { - "name": "17175 SW TUALATIN VALLEY HIGHWAY", - "locality": "Aloha", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 35, - "status": "pass", - "in": { - "text": "17175 SW TV Hwy aloha OR" - }, - "expected": { - "properties": [ - { - "name": "17175 SW TUALATIN VALLEY HIGHWAY", - "locality": "Aloha", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 36, - "status": "pass", - "in": { - "text": "17175 SW TV Hwy aloha Oregon" - }, - "expected": { - "properties": [ - { - "name": "17175 SW TUALATIN VALLEY HIGHWAY", - "locality": "Aloha", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 37, - "status": "pass", - "in": { - "text": "17175 SW TVH, aloha, OR" - }, - "expected": { - "properties": [ - { - "name": "17175 SW TUALATIN VALLEY HIGHWAY", - "locality": "Aloha", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 38, - "status": "pass", - "in": { - "text": "17175 SW TVH, aloha, Oregon" - }, - "expected": { - "properties": [ - { - "name": "17175 SW TUALATIN VALLEY HIGHWAY", - "locality": "Aloha", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 39, - "status": "pass", - "in": { - "text": "17175 SW TVH aloha OR" - }, - "expected": { - "properties": [ - { - "name": "17175 SW TUALATIN VALLEY HIGHWAY", - "locality": "Aloha", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 40, - "status": "pass", - "in": { - "text": "17175 SW TVH aloha Oregon" - }, - "expected": { - "properties": [ - { - "name": "17175 SW TUALATIN VALLEY HIGHWAY", - "locality": "Aloha", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 41, - "status": "pass", - "in": { - "text": "17175 SW TUALATIN VALLEY HWY, aloha, OR" - }, - "expected": { - "properties": [ - { - "name": "17175 SW TUALATIN VALLEY HIGHWAY", - "locality": "Aloha", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 42, - "status": "pass", - "in": { - "text": "17175 SW TUALATIN VALLEY HWY, aloha, Oregon" - }, - "expected": { - "properties": [ - { - "name": "17175 SW TUALATIN VALLEY HIGHWAY", - "locality": "Aloha", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 43, - "status": "pass", - "in": { - "text": "17175 SW TUALATIN VALLEY HWY aloha OR" - }, - "expected": { - "properties": [ - { - "name": "17175 SW TUALATIN VALLEY HIGHWAY", - "locality": "Aloha", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 44, - "status": "pass", - "in": { - "text": "17175 SW TUALATIN VALLEY HWY aloha Oregon" - }, - "expected": { - "properties": [ - { - "name": "17175 SW TUALATIN VALLEY HIGHWAY", - "locality": "Aloha", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 45, - "status": "pass", - "in": { - "text": "1800 SW 1ST AVE, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "1800 SW 1ST AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 46, - "status": "pass", - "in": { - "text": "1800 SW 1ST AVE, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "1800 SW 1ST AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 47, - "status": "pass", - "in": { - "text": "1800 SW 1ST AVE Portland OR" - }, - "expected": { - "properties": [ - { - "name": "1800 SW 1ST AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 48, - "status": "pass", - "in": { - "text": "1800 SW 1ST AVE Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "1800 SW 1ST AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 49, - "status": "pass", - "in": { - "text": "4134 N VANCOUVER AVE, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "4134 N VANCOUVER AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 50, - "status": "pass", - "in": { - "text": "4134 N VANCOUVER AVE, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "4134 N VANCOUVER AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 51, - "status": "pass", - "in": { - "text": "4134 N VANCOUVER AVE Portland OR" - }, - "expected": { - "properties": [ - { - "name": "4134 N VANCOUVER AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 52, - "status": "pass", - "in": { - "text": "4134 N VANCOUVER AVE Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "4134 N VANCOUVER AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 53, - "status": "pass", - "in": { - "text": "834 SE LAMBERT ST, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "834 SE LAMBERT ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 54, - "status": "pass", - "in": { - "text": "834 SE LAMBERT ST, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "834 SE LAMBERT ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 55, - "status": "pass", - "in": { - "text": "834 SE LAMBERT ST Portland OR" - }, - "expected": { - "properties": [ - { - "name": "834 SE LAMBERT ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 56, - "status": "pass", - "in": { - "text": "834 SE LAMBERT ST Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "834 SE LAMBERT ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 57, - "status": "pass", - "in": { - "text": "6146 SW 18th DR, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "6146 SW 18th DR", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 58, - "status": "pass", - "in": { - "text": "6146 SW 18th DR, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "6146 SW 18th DR", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 59, - "status": "pass", - "in": { - "text": "6146 SW 18th DR Portland OR" - }, - "expected": { - "properties": [ - { - "name": "6146 SW 18th DR", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 60, - "status": "pass", - "in": { - "text": "6146 SW 18th DR Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "6146 SW 18th DR", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 61, - "status": "pass", - "in": { - "text": "725 SW 10TH AVE, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "725 SW 10TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 62, - "status": "pass", - "in": { - "text": "725 SW 10TH AVE, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "725 SW 10TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 63, - "status": "pass", - "in": { - "text": "725 SW 10TH AVE Portland OR" - }, - "expected": { - "properties": [ - { - "name": "725 SW 10TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 64, - "status": "pass", - "in": { - "text": "725 SW 10TH AVE Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "725 SW 10TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 65, - "status": "fail", - "in": { - "text": "14587 SW DAUER CT, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "14587 SW DAUER CT", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 66, - "status": "fail", - "in": { - "text": "14587 SW DAUER CT, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "14587 SW DAUER CT", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 67, - "status": "fail", - "in": { - "text": "14587 SW DAUER CT Portland OR" - }, - "expected": { - "properties": [ - { - "name": "14587 SW DAUER CT", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 68, - "status": "fail", - "in": { - "text": "14587 SW DAUER CT Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "14587 SW DAUER CT", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 69, - "status": "pass", - "in": { - "text": "1800 SW 1ST AVE, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "1800 SW 1ST AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 70, - "status": "pass", - "in": { - "text": "1800 SW 1ST AVE, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "1800 SW 1ST AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 71, - "status": "pass", - "in": { - "text": "1800 SW 1ST AVE Portland OR" - }, - "expected": { - "properties": [ - { - "name": "1800 SW 1ST AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 72, - "status": "pass", - "in": { - "text": "1800 SW 1ST AVE Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "1800 SW 1ST AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 73, - "status": "pass", - "in": { - "text": "1400 SW 5TH AVE, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "1400 SW 5TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 74, - "status": "pass", - "in": { - "text": "1400 SW 5TH AVE, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "1400 SW 5TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 75, - "status": "pass", - "in": { - "text": "1400 SW 5TH AVE Portland OR" - }, - "expected": { - "properties": [ - { - "name": "1400 SW 5TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 76, - "status": "pass", - "in": { - "text": "1400 SW 5TH AVE Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "1400 SW 5TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 77, - "status": "pass", - "in": { - "text": "1000 SW BROADWAY, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "1000 SW BROADWAY", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 78, - "status": "pass", - "in": { - "text": "1000 SW BROADWAY, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "1000 SW BROADWAY", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 79, - "status": "pass", - "in": { - "text": "1000 SW BROADWAY Portland OR" - }, - "expected": { - "properties": [ - { - "name": "1000 SW BROADWAY", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 80, - "status": "pass", - "in": { - "text": "1000 SW BROADWAY Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "1000 SW BROADWAY", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 81, - "status": "pass", - "in": { - "text": "14715 E BURNSIDE ST, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "14715 E BURNSIDE ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 82, - "status": "pass", - "in": { - "text": "14715 E BURNSIDE ST, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "14715 E BURNSIDE ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 83, - "status": "pass", - "in": { - "text": "14715 E BURNSIDE ST Portland OR" - }, - "expected": { - "properties": [ - { - "name": "14715 E BURNSIDE ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 84, - "status": "pass", - "in": { - "text": "14715 E BURNSIDE ST Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "14715 E BURNSIDE ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 85, - "status": "pass", - "in": { - "text": "30 147TH AVE, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "30 NE 147 AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 86, - "status": "pass", - "in": { - "text": "30 147TH AVE, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "30 NE 147 AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 87, - "status": "pass", - "in": { - "text": "30 147TH AVE Portland OR" - }, - "expected": { - "properties": [ - { - "name": "30 NE 147 AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 88, - "status": "pass", - "in": { - "text": "30 147TH AVE Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "30 NE 147 AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 89, - "status": "pass", - "in": { - "text": "1220 SW 3RD AVE, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "1220 SW 3RD AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 90, - "status": "pass", - "in": { - "text": "1220 SW 3RD AVE, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "1220 SW 3RD AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 91, - "status": "pass", - "in": { - "text": "1220 SW 3RD AVE Portland OR" - }, - "expected": { - "properties": [ - { - "name": "1220 SW 3RD AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 92, - "status": "pass", - "in": { - "text": "1220 SW 3RD AVE Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "1220 SW 3RD AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 93, - "status": "pass", - "in": { - "text": "825 NE MULTNOMAH ST, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "825 NE MULTNOMAH ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 94, - "status": "pass", - "in": { - "text": "825 NE MULTNOMAH ST, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "825 NE MULTNOMAH ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 95, - "status": "pass", - "in": { - "text": "825 NE MULTNOMAH ST Portland OR" - }, - "expected": { - "properties": [ - { - "name": "825 NE MULTNOMAH ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 96, - "status": "pass", - "in": { - "text": "825 NE MULTNOMAH ST Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "825 NE MULTNOMAH ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 97, - "status": "pass", - "in": { - "text": "6236 SE 134TH AVE, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "6236 SE 134TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 98, - "status": "pass", - "in": { - "text": "6236 SE 134TH AVE, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "6236 SE 134TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 99, - "status": "pass", - "in": { - "text": "6236 SE 134TH AVE Portland OR" - }, - "expected": { - "properties": [ - { - "name": "6236 SE 134TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 100, - "status": "pass", - "in": { - "text": "6236 SE 134TH AVE Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "6236 SE 134TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 101, - "status": "pass", - "in": { - "text": "3334 SE 7TH AVE, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "3334 SE 7TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 102, - "status": "pass", - "in": { - "text": "3334 SE 7TH AVE, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "3334 SE 7TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 103, - "status": "pass", - "in": { - "text": "3334 SE 7TH AVE Portland OR" - }, - "expected": { - "properties": [ - { - "name": "3334 SE 7TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 104, - "status": "pass", - "in": { - "text": "3334 SE 7TH AVE Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "3334 SE 7TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 105, - "status": "pass", - "in": { - "text": "3625 N FARRAGUT ST, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "3625 N FARRAGUT ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 106, - "status": "pass", - "in": { - "text": "3625 N FARRAGUT ST, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "3625 N FARRAGUT ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 107, - "status": "pass", - "in": { - "text": "3625 N FARRAGUT ST Portland OR" - }, - "expected": { - "properties": [ - { - "name": "3625 N FARRAGUT ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 108, - "status": "pass", - "in": { - "text": "3625 N FARRAGUT ST Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "3625 N FARRAGUT ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 109, - "status": "pass", - "in": { - "text": "1606 NE 90TH AVE, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "1606 NE 90TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 110, - "status": "pass", - "in": { - "text": "1606 NE 90TH AVE, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "1606 NE 90TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 111, - "status": "pass", - "in": { - "text": "1606 NE 90TH AVE Portland OR" - }, - "expected": { - "properties": [ - { - "name": "1606 NE 90TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 112, - "status": "pass", - "in": { - "text": "1606 NE 90TH AVE Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "1606 NE 90TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 113, - "status": "pass", - "in": { - "text": "14359 SE POWELL BLVD, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "14359 SE POWELL BLVD", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 114, - "status": "pass", - "in": { - "text": "14359 SE POWELL BLVD, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "14359 SE POWELL BLVD", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 115, - "status": "pass", - "in": { - "text": "14359 SE POWELL BLVD Portland OR" - }, - "expected": { - "properties": [ - { - "name": "14359 SE POWELL BLVD", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 116, - "status": "pass", - "in": { - "text": "14359 SE POWELL BLVD Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "14359 SE POWELL BLVD", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 117, - "status": "fail", - "in": { - "text": "4015 N ALBINA ST, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "4015 N ALBINA ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 118, - "status": "fail", - "in": { - "text": "4015 N ALBINA ST, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "4015 N ALBINA ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 119, - "status": "fail", - "in": { - "text": "4015 N ALBINA ST Portland OR" - }, - "expected": { - "properties": [ - { - "name": "4015 N ALBINA ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 120, - "status": "fail", - "in": { - "text": "4015 N ALBINA ST Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "4015 N ALBINA ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 121, - "status": "pass", - "in": { - "text": "5661 SE HAROLD ST, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "5661 SE HAROLD ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 122, - "status": "pass", - "in": { - "text": "5661 SE HAROLD ST, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "5661 SE HAROLD ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 123, - "status": "pass", - "in": { - "text": "5661 SE HAROLD ST Portland OR" - }, - "expected": { - "properties": [ - { - "name": "5661 SE HAROLD ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 124, - "status": "pass", - "in": { - "text": "5661 SE HAROLD ST Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "5661 SE HAROLD ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 125, - "status": "pass", - "in": { - "text": "3689 SE FRANCIS ST, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "3689 SE FRANCIS ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 126, - "status": "pass", - "in": { - "text": "3689 SE FRANCIS ST, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "3689 SE FRANCIS ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 127, - "status": "pass", - "in": { - "text": "3689 SE FRANCIS ST Portland OR" - }, - "expected": { - "properties": [ - { - "name": "3689 SE FRANCIS ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 128, - "status": "pass", - "in": { - "text": "3689 SE FRANCIS ST Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "3689 SE FRANCIS ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 129, - "status": "pass", - "in": { - "text": "2522 SE CLINTON ST, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "2522 SE CLINTON ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 130, - "status": "pass", - "in": { - "text": "2522 SE CLINTON ST, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "2522 SE CLINTON ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 131, - "status": "pass", - "in": { - "text": "2522 SE CLINTON ST Portland OR" - }, - "expected": { - "properties": [ - { - "name": "2522 SE CLINTON ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 132, - "status": "pass", - "in": { - "text": "2522 SE CLINTON ST Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "2522 SE CLINTON ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 133, - "status": "pass", - "in": { - "text": "6834 SE POWELL BLVD, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "6834 SE POWELL BLVD", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 134, - "status": "pass", - "in": { - "text": "6834 SE POWELL BLVD, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "6834 SE POWELL BLVD", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 135, - "status": "pass", - "in": { - "text": "6834 SE POWELL BLVD Portland OR" - }, - "expected": { - "properties": [ - { - "name": "6834 SE POWELL BLVD", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 136, - "status": "pass", - "in": { - "text": "6834 SE POWELL BLVD Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "6834 SE POWELL BLVD", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 137, - "status": "pass", - "in": { - "text": "310 NE 55TH AVE, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "310 NE 55TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 138, - "status": "pass", - "in": { - "text": "310 NE 55TH AVE, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "310 NE 55TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 139, - "status": "pass", - "in": { - "text": "310 NE 55TH AVE Portland OR" - }, - "expected": { - "properties": [ - { - "name": "310 NE 55TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 140, - "status": "pass", - "in": { - "text": "310 NE 55TH AVE Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "310 NE 55TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 141, - "status": "pass", - "in": { - "text": "6021 SE 72ND AVE, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "6021 SE 72ND AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 142, - "status": "pass", - "in": { - "text": "6021 SE 72ND AVE, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "6021 SE 72ND AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 143, - "status": "pass", - "in": { - "text": "6021 SE 72ND AVE Portland OR" - }, - "expected": { - "properties": [ - { - "name": "6021 SE 72ND AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 144, - "status": "pass", - "in": { - "text": "6021 SE 72ND AVE Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "6021 SE 72ND AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 145, - "status": "pass", - "in": { - "text": "1721 NE 108TH, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "1721 NE 108TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 146, - "status": "pass", - "in": { - "text": "1721 NE 108TH, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "1721 NE 108TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 147, - "status": "pass", - "in": { - "text": "1721 NE 108TH Portland OR" - }, - "expected": { - "properties": [ - { - "name": "1721 NE 108TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 148, - "status": "pass", - "in": { - "text": "1721 NE 108TH Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "1721 NE 108TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 149, - "status": "pass", - "in": { - "text": "9352 N DWIGHT AVE, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "9352 N DWIGHT AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 150, - "status": "pass", - "in": { - "text": "9352 N DWIGHT AVE, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "9352 N DWIGHT AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 151, - "status": "pass", - "in": { - "text": "9352 N DWIGHT AVE Portland OR" - }, - "expected": { - "properties": [ - { - "name": "9352 N DWIGHT AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 152, - "status": "pass", - "in": { - "text": "9352 N DWIGHT AVE Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "9352 N DWIGHT AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 153, - "status": "pass", - "in": { - "text": "9348 N DWIGHT AVE, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "9348 N DWIGHT AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 154, - "status": "pass", - "in": { - "text": "9348 N DWIGHT AVE, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "9348 N DWIGHT AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 155, - "status": "pass", - "in": { - "text": "9348 N DWIGHT AVE Portland OR" - }, - "expected": { - "properties": [ - { - "name": "9348 N DWIGHT AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 156, - "status": "pass", - "in": { - "text": "9348 N DWIGHT AVE Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "9348 N DWIGHT AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 157, - "status": "pass", - "in": { - "text": "9344 N DWIGHT AVE, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "9344 N DWIGHT AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 158, - "status": "pass", - "in": { - "text": "9344 N DWIGHT AVE, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "9344 N DWIGHT AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 159, - "status": "pass", - "in": { - "text": "9344 N DWIGHT AVE Portland OR" - }, - "expected": { - "properties": [ - { - "name": "9344 N DWIGHT AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 160, - "status": "pass", - "in": { - "text": "9344 N DWIGHT AVE Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "9344 N DWIGHT AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 161, - "status": "pass", - "in": { - "text": "9340 N DWIGHT AVE, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "9340 N DWIGHT AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 162, - "status": "pass", - "in": { - "text": "9340 N DWIGHT AVE, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "9340 N DWIGHT AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 163, - "status": "pass", - "in": { - "text": "9340 N DWIGHT AVE Portland OR" - }, - "expected": { - "properties": [ - { - "name": "9340 N DWIGHT AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 164, - "status": "pass", - "in": { - "text": "9340 N DWIGHT AVE Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "9340 N DWIGHT AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 165, - "status": "pass", - "in": { - "text": "9336 N DWIGHT AVE, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "9336 N DWIGHT AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 166, - "status": "pass", - "in": { - "text": "9336 N DWIGHT AVE, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "9336 N DWIGHT AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 167, - "status": "pass", - "in": { - "text": "9336 N DWIGHT AVE Portland OR" - }, - "expected": { - "properties": [ - { - "name": "9336 N DWIGHT AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 168, - "status": "pass", - "in": { - "text": "9336 N DWIGHT AVE Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "9336 N DWIGHT AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 169, - "status": "pass", - "in": { - "text": "9332 N DWIGHT AVE, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "9332 N DWIGHT AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 170, - "status": "pass", - "in": { - "text": "9332 N DWIGHT AVE, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "9332 N DWIGHT AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 171, - "status": "pass", - "in": { - "text": "9332 N DWIGHT AVE Portland OR" - }, - "expected": { - "properties": [ - { - "name": "9332 N DWIGHT AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 172, - "status": "pass", - "in": { - "text": "9332 N DWIGHT AVE Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "9332 N DWIGHT AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 173, - "status": "pass", - "in": { - "text": "9649 N FISKE AVE, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "9649 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 174, - "status": "pass", - "in": { - "text": "9649 N FISKE AVE, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "9649 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 175, - "status": "pass", - "in": { - "text": "9649 N FISKE AVE Portland OR" - }, - "expected": { - "properties": [ - { - "name": "9649 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 176, - "status": "pass", - "in": { - "text": "9649 N FISKE AVE Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "9649 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 177, - "status": "pass", - "in": { - "text": "9645 N FISKE AVE, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "9645 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 178, - "status": "pass", - "in": { - "text": "9645 N FISKE AVE, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "9645 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 179, - "status": "pass", - "in": { - "text": "9645 N FISKE AVE Portland OR" - }, - "expected": { - "properties": [ - { - "name": "9645 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 180, - "status": "pass", - "in": { - "text": "9645 N FISKE AVE Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "9645 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 181, - "status": "pass", - "in": { - "text": "9641 N FISKE AVE, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "9641 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 182, - "status": "pass", - "in": { - "text": "9641 N FISKE AVE, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "9641 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 183, - "status": "pass", - "in": { - "text": "9641 N FISKE AVE Portland OR" - }, - "expected": { - "properties": [ - { - "name": "9641 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 184, - "status": "pass", - "in": { - "text": "9641 N FISKE AVE Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "9641 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 185, - "status": "pass", - "in": { - "text": "9637 N FISKE AVE, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "9637 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 186, - "status": "pass", - "in": { - "text": "9637 N FISKE AVE, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "9637 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 187, - "status": "pass", - "in": { - "text": "9637 N FISKE AVE Portland OR" - }, - "expected": { - "properties": [ - { - "name": "9637 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 188, - "status": "pass", - "in": { - "text": "9637 N FISKE AVE Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "9637 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 189, - "status": "pass", - "in": { - "text": "9117 N FISKE AVE, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "9117 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 190, - "status": "pass", - "in": { - "text": "9117 N FISKE AVE, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "9117 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 191, - "status": "pass", - "in": { - "text": "9117 N FISKE AVE Portland OR" - }, - "expected": { - "properties": [ - { - "name": "9117 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 192, - "status": "pass", - "in": { - "text": "9117 N FISKE AVE Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "9117 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 193, - "status": "pass", - "in": { - "text": "9129 N FISKE AVE, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "9129 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 194, - "status": "pass", - "in": { - "text": "9129 N FISKE AVE, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "9129 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 195, - "status": "pass", - "in": { - "text": "9129 N FISKE AVE Portland OR" - }, - "expected": { - "properties": [ - { - "name": "9129 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 196, - "status": "pass", - "in": { - "text": "9129 N FISKE AVE Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "9129 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 197, - "status": "pass", - "in": { - "text": "9125 N FISKE AVE, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "9125 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 198, - "status": "pass", - "in": { - "text": "9125 N FISKE AVE, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "9125 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 199, - "status": "pass", - "in": { - "text": "9125 N FISKE AVE Portland OR" - }, - "expected": { - "properties": [ - { - "name": "9125 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 200, - "status": "pass", - "in": { - "text": "9125 N FISKE AVE Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "9125 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 201, - "status": "pass", - "in": { - "text": "9121 N FISKE AVE, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "9121 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 202, - "status": "pass", - "in": { - "text": "9121 N FISKE AVE, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "9121 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 203, - "status": "pass", - "in": { - "text": "9121 N FISKE AVE Portland OR" - }, - "expected": { - "properties": [ - { - "name": "9121 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 204, - "status": "pass", - "in": { - "text": "9121 N FISKE AVE Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "9121 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 205, - "status": "pass", - "in": { - "text": "9133 N FISKE AVE, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "9133 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 206, - "status": "pass", - "in": { - "text": "9133 N FISKE AVE, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "9133 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 207, - "status": "pass", - "in": { - "text": "9133 N FISKE AVE Portland OR" - }, - "expected": { - "properties": [ - { - "name": "9133 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 208, - "status": "pass", - "in": { - "text": "9133 N FISKE AVE Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "9133 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 209, - "status": "pass", - "in": { - "text": "9325 N FISKE AVE, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "9325 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 210, - "status": "pass", - "in": { - "text": "9325 N FISKE AVE, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "9325 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 211, - "status": "pass", - "in": { - "text": "9325 N FISKE AVE Portland OR" - }, - "expected": { - "properties": [ - { - "name": "9325 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 212, - "status": "pass", - "in": { - "text": "9325 N FISKE AVE Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "9325 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 213, - "status": "pass", - "in": { - "text": "9305 N FISKE AVE, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "9305 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 214, - "status": "pass", - "in": { - "text": "9305 N FISKE AVE, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "9305 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 215, - "status": "pass", - "in": { - "text": "9305 N FISKE AVE Portland OR" - }, - "expected": { - "properties": [ - { - "name": "9305 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 216, - "status": "pass", - "in": { - "text": "9305 N FISKE AVE Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "9305 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 217, - "status": "pass", - "in": { - "text": "9309 N FISKE AVE, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "9309 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 218, - "status": "pass", - "in": { - "text": "9309 N FISKE AVE, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "9309 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 219, - "status": "pass", - "in": { - "text": "9309 N FISKE AVE Portland OR" - }, - "expected": { - "properties": [ - { - "name": "9309 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 220, - "status": "pass", - "in": { - "text": "9309 N FISKE AVE Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "9309 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 221, - "status": "pass", - "in": { - "text": "9313 N FISKE AVE, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "9313 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 222, - "status": "pass", - "in": { - "text": "9313 N FISKE AVE, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "9313 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 223, - "status": "pass", - "in": { - "text": "9313 N FISKE AVE Portland OR" - }, - "expected": { - "properties": [ - { - "name": "9313 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 224, - "status": "pass", - "in": { - "text": "9313 N FISKE AVE Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "9313 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 225, - "status": "pass", - "in": { - "text": "9321 N FISKE AVE, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "9321 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 226, - "status": "pass", - "in": { - "text": "9321 N FISKE AVE, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "9321 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 227, - "status": "pass", - "in": { - "text": "9321 N FISKE AVE Portland OR" - }, - "expected": { - "properties": [ - { - "name": "9321 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 228, - "status": "pass", - "in": { - "text": "9321 N FISKE AVE Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "9321 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 229, - "status": "pass", - "in": { - "text": "9341 N FISKE AVE, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "9341 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 230, - "status": "pass", - "in": { - "text": "9341 N FISKE AVE, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "9341 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 231, - "status": "pass", - "in": { - "text": "9341 N FISKE AVE Portland OR" - }, - "expected": { - "properties": [ - { - "name": "9341 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 232, - "status": "pass", - "in": { - "text": "9341 N FISKE AVE Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "9341 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 233, - "status": "pass", - "in": { - "text": "9337 N FISKE AVE, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "9337 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 234, - "status": "pass", - "in": { - "text": "9337 N FISKE AVE, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "9337 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 235, - "status": "pass", - "in": { - "text": "9337 N FISKE AVE Portland OR" - }, - "expected": { - "properties": [ - { - "name": "9337 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 236, - "status": "pass", - "in": { - "text": "9337 N FISKE AVE Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "9337 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 237, - "status": "pass", - "in": { - "text": "9333 N FISKE AVE, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "9333 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 238, - "status": "pass", - "in": { - "text": "9333 N FISKE AVE, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "9333 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 239, - "status": "pass", - "in": { - "text": "9333 N FISKE AVE Portland OR" - }, - "expected": { - "properties": [ - { - "name": "9333 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 240, - "status": "pass", - "in": { - "text": "9333 N FISKE AVE Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "9333 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 241, - "status": "pass", - "in": { - "text": "9349 N FISKE AVE, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "9349 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 242, - "status": "pass", - "in": { - "text": "9349 N FISKE AVE, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "9349 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 243, - "status": "pass", - "in": { - "text": "9349 N FISKE AVE Portland OR" - }, - "expected": { - "properties": [ - { - "name": "9349 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 244, - "status": "pass", - "in": { - "text": "9349 N FISKE AVE Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "9349 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 245, - "status": "pass", - "in": { - "text": "9345 N FISKE AVE, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "9345 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 246, - "status": "pass", - "in": { - "text": "9345 N FISKE AVE, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "9345 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 247, - "status": "pass", - "in": { - "text": "9345 N FISKE AVE Portland OR" - }, - "expected": { - "properties": [ - { - "name": "9345 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 248, - "status": "pass", - "in": { - "text": "9345 N FISKE AVE Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "9345 N FISKE AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 249, - "status": "pass", - "in": { - "text": "4902 N TRENTON ST, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "4902 N TRENTON ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 250, - "status": "pass", - "in": { - "text": "4902 N TRENTON ST, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "4902 N TRENTON ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 251, - "status": "pass", - "in": { - "text": "4902 N TRENTON ST Portland OR" - }, - "expected": { - "properties": [ - { - "name": "4902 N TRENTON ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 252, - "status": "pass", - "in": { - "text": "4902 N TRENTON ST Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "4902 N TRENTON ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 253, - "status": "pass", - "in": { - "text": "5330 NE GLISAN ST, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "5330 NE GLISAN ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 254, - "status": "pass", - "in": { - "text": "5330 NE GLISAN ST, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "5330 NE GLISAN ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 255, - "status": "pass", - "in": { - "text": "5330 NE GLISAN ST Portland OR" - }, - "expected": { - "properties": [ - { - "name": "5330 NE GLISAN ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 256, - "status": "pass", - "in": { - "text": "5330 NE GLISAN ST Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "5330 NE GLISAN ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 257, - "status": "pass", - "in": { - "text": "3268 NE EMERSON ST, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "3268 NE EMERSON ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 258, - "status": "pass", - "in": { - "text": "3268 NE EMERSON ST, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "3268 NE EMERSON ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 259, - "status": "pass", - "in": { - "text": "3268 NE EMERSON ST Portland OR" - }, - "expected": { - "properties": [ - { - "name": "3268 NE EMERSON ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 260, - "status": "pass", - "in": { - "text": "3268 NE EMERSON ST Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "3268 NE EMERSON ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 261, - "status": "fail", - "in": { - "text": "4105 SE INTERNATIONAL WAY, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "4105 SE INTERNATIONAL WAY", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 262, - "status": "fail", - "in": { - "text": "4105 SE INTERNATIONAL WAY, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "4105 SE INTERNATIONAL WAY", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 263, - "status": "fail", - "in": { - "text": "4105 SE INTERNATIONAL WAY Portland OR" - }, - "expected": { - "properties": [ - { - "name": "4105 SE INTERNATIONAL WAY", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 264, - "status": "fail", - "in": { - "text": "4105 SE INTERNATIONAL WAY Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "4105 SE INTERNATIONAL WAY", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 265, - "status": "pass", - "in": { - "text": "1508 SE 21ST AVE, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "1508 SE 21ST AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 266, - "status": "pass", - "in": { - "text": "1508 SE 21ST AVE, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "1508 SE 21ST AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 267, - "status": "pass", - "in": { - "text": "1508 SE 21ST AVE Portland OR" - }, - "expected": { - "properties": [ - { - "name": "1508 SE 21ST AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 268, - "status": "pass", - "in": { - "text": "1508 SE 21ST AVE Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "1508 SE 21ST AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 269, - "status": "pass", - "in": { - "text": "1322 SE WATER AVE, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "1322 SE WATER AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 270, - "status": "pass", - "in": { - "text": "1322 SE WATER AVE, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "1322 SE WATER AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 271, - "status": "pass", - "in": { - "text": "1322 SE WATER AVE Portland OR" - }, - "expected": { - "properties": [ - { - "name": "1322 SE WATER AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 272, - "status": "pass", - "in": { - "text": "1322 SE WATER AVE Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "1322 SE WATER AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 273, - "status": "pass", - "in": { - "text": "216 SE 103RD AVE, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "216 SE 103RD AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 274, - "status": "pass", - "in": { - "text": "216 SE 103RD AVE, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "216 SE 103RD AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 275, - "status": "pass", - "in": { - "text": "216 SE 103RD AVE Portland OR" - }, - "expected": { - "properties": [ - { - "name": "216 SE 103RD AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 276, - "status": "pass", - "in": { - "text": "216 SE 103RD AVE Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "216 SE 103RD AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 277, - "status": "pass", - "in": { - "text": "0841 SW GAINES ST, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "0841 SW GAINES ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 278, - "status": "pass", - "in": { - "text": "0841 SW GAINES ST, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "0841 SW GAINES ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 279, - "status": "pass", - "in": { - "text": "0841 SW GAINES ST Portland OR" - }, - "expected": { - "properties": [ - { - "name": "0841 SW GAINES ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 280, - "status": "pass", - "in": { - "text": "0841 SW GAINES ST Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "0841 SW GAINES ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 281, - "status": "pass", - "in": { - "text": "1231 NE BROADWAY ST, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "1231 NE BROADWAY", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 282, - "status": "pass", - "in": { - "text": "1231 NE BROADWAY ST, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "1231 NE BROADWAY", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 283, - "status": "pass", - "in": { - "text": "1231 NE BROADWAY ST Portland OR" - }, - "expected": { - "properties": [ - { - "name": "1231 NE BROADWAY", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 284, - "status": "pass", - "in": { - "text": "1231 NE BROADWAY ST Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "1231 NE BROADWAY", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 285, - "status": "pass", - "in": { - "text": "1523 SE 162ND AVE, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "1523 SE 162ND AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 286, - "status": "pass", - "in": { - "text": "1523 SE 162ND AVE, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "1523 SE 162ND AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 287, - "status": "pass", - "in": { - "text": "1523 SE 162ND AVE Portland OR" - }, - "expected": { - "properties": [ - { - "name": "1523 SE 162ND AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 288, - "status": "pass", - "in": { - "text": "1523 SE 162ND AVE Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "1523 SE 162ND AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 289, - "status": "pass", - "in": { - "text": "2243 SE DIVISION ST, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "2243 SE DIVISION ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 290, - "status": "pass", - "in": { - "text": "2243 SE DIVISION ST, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "2243 SE DIVISION ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 291, - "status": "pass", - "in": { - "text": "2243 SE DIVISION ST Portland OR" - }, - "expected": { - "properties": [ - { - "name": "2243 SE DIVISION ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 292, - "status": "pass", - "in": { - "text": "2243 SE DIVISION ST Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "2243 SE DIVISION ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 293, - "status": "fail", - "in": { - "text": "10955 SE JENNIFER ST, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "10955 SE JENNIFER ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 294, - "status": "fail", - "in": { - "text": "10955 SE JENNIFER ST, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "10955 SE JENNIFER ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 295, - "status": "fail", - "in": { - "text": "10955 SE JENNIFER ST Portland OR" - }, - "expected": { - "properties": [ - { - "name": "10955 SE JENNIFER ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 296, - "status": "fail", - "in": { - "text": "10955 SE JENNIFER ST Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "10955 SE JENNIFER ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 297, - "status": "pass", - "in": { - "text": "1739 NW COUCH ST, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "1739 NW COUCH ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 298, - "status": "pass", - "in": { - "text": "1739 NW COUCH ST, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "1739 NW COUCH ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 299, - "status": "pass", - "in": { - "text": "1739 NW COUCH ST Portland OR" - }, - "expected": { - "properties": [ - { - "name": "1739 NW COUCH ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 300, - "status": "pass", - "in": { - "text": "1739 NW COUCH ST Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "1739 NW COUCH ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 301, - "status": "pass", - "in": { - "text": "2716 SW BEAVERTON-HILLSDALE HWY, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "2716 SW BEAVERTON HILLSDALE HIGHWAY", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 302, - "status": "pass", - "in": { - "text": "2716 SW BEAVERTON-HILLSDALE HWY, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "2716 SW BEAVERTON HILLSDALE HIGHWAY", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 303, - "status": "pass", - "in": { - "text": "2716 SW BEAVERTON-HILLSDALE HWY Portland OR" - }, - "expected": { - "properties": [ - { - "name": "2716 SW BEAVERTON HILLSDALE HIGHWAY", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 304, - "status": "pass", - "in": { - "text": "2716 SW BEAVERTON-HILLSDALE HWY Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "2716 SW BEAVERTON HILLSDALE HIGHWAY", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 305, - "status": "pass", - "in": { - "text": "4701 SE 24TH AVE, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "4701 SE 24TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 306, - "status": "pass", - "in": { - "text": "4701 SE 24TH AVE, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "4701 SE 24TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 307, - "status": "pass", - "in": { - "text": "4701 SE 24TH AVE Portland OR" - }, - "expected": { - "properties": [ - { - "name": "4701 SE 24TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 308, - "status": "pass", - "in": { - "text": "4701 SE 24TH AVE Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "4701 SE 24TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 309, - "status": "pass", - "in": { - "text": "1130 NW 22ND AVE, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "1130 NW 22ND AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 310, - "status": "pass", - "in": { - "text": "1130 NW 22ND AVE, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "1130 NW 22ND AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 311, - "status": "pass", - "in": { - "text": "1130 NW 22ND AVE Portland OR" - }, - "expected": { - "properties": [ - { - "name": "1130 NW 22ND AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 312, - "status": "pass", - "in": { - "text": "1130 NW 22ND AVE Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "1130 NW 22ND AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 313, - "status": "pass", - "in": { - "text": "7368 SE DIVISION ST, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "7368 SE DIVISION ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 314, - "status": "pass", - "in": { - "text": "7368 SE DIVISION ST, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "7368 SE DIVISION ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 315, - "status": "pass", - "in": { - "text": "7368 SE DIVISION ST Portland OR" - }, - "expected": { - "properties": [ - { - "name": "7368 SE DIVISION ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 316, - "status": "pass", - "in": { - "text": "7368 SE DIVISION ST Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "7368 SE DIVISION ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 317, - "status": "fail", - "in": { - "text": "16317 SE 82ND DR, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "16317 SE 82ND DR", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 318, - "status": "fail", - "in": { - "text": "16317 SE 82ND DR, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "16317 SE 82ND DR", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 319, - "status": "fail", - "in": { - "text": "16317 SE 82ND DR Portland OR" - }, - "expected": { - "properties": [ - { - "name": "16317 SE 82ND DR", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 320, - "status": "fail", - "in": { - "text": "16317 SE 82ND DR Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "16317 SE 82ND DR", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 321, - "status": "fail", - "in": { - "text": "14255 SW 6TH ST, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "14255 SW 6TH ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 322, - "status": "fail", - "in": { - "text": "14255 SW 6TH ST, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "14255 SW 6TH ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 323, - "status": "fail", - "in": { - "text": "14255 SW 6TH ST Portland OR" - }, - "expected": { - "properties": [ - { - "name": "14255 SW 6TH ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 324, - "status": "fail", - "in": { - "text": "14255 SW 6TH ST Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "14255 SW 6TH ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 325, - "status": "pass", - "in": { - "text": "3421 SE SALMON ST, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "3421 SE SALMON ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 326, - "status": "pass", - "in": { - "text": "3421 SE SALMON ST, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "3421 SE SALMON ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 327, - "status": "pass", - "in": { - "text": "3421 SE SALMON ST Portland OR" - }, - "expected": { - "properties": [ - { - "name": "3421 SE SALMON ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 328, - "status": "pass", - "in": { - "text": "3421 SE SALMON ST Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "3421 SE SALMON ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 329, - "status": "fail", - "in": { - "text": "12133 SE 8OTH AVE MILWAUKIE, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "12133 SE 8OTH AVE MILWAUKIE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 330, - "status": "fail", - "in": { - "text": "12133 SE 8OTH AVE MILWAUKIE, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "12133 SE 8OTH AVE MILWAUKIE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 331, - "status": "fail", - "in": { - "text": "12133 SE 8OTH AVE MILWAUKIE Portland OR" - }, - "expected": { - "properties": [ - { - "name": "12133 SE 8OTH AVE MILWAUKIE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 332, - "status": "fail", - "in": { - "text": "12133 SE 8OTH AVE MILWAUKIE Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "12133 SE 8OTH AVE MILWAUKIE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 333, - "status": "pass", - "in": { - "text": "311 NW 12TH AVE, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "311 NW 12TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 334, - "status": "pass", - "in": { - "text": "311 NW 12TH AVE, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "311 NW 12TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 335, - "status": "pass", - "in": { - "text": "311 NW 12TH AVE Portland OR" - }, - "expected": { - "properties": [ - { - "name": "311 NW 12TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 336, - "status": "pass", - "in": { - "text": "311 NW 12TH AVE Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "311 NW 12TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 337, - "status": "pass", - "in": { - "text": "3480 NW INDUSTRIAL ST, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "3480 NW INDUSTRIAL ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 338, - "status": "pass", - "in": { - "text": "3480 NW INDUSTRIAL ST, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "3480 NW INDUSTRIAL ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 339, - "status": "pass", - "in": { - "text": "3480 NW INDUSTRIAL ST Portland OR" - }, - "expected": { - "properties": [ - { - "name": "3480 NW INDUSTRIAL ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 340, - "status": "pass", - "in": { - "text": "3480 NW INDUSTRIAL ST Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "3480 NW INDUSTRIAL ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 341, - "status": "pass", - "in": { - "text": "422 E BURNSIDE ST, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "422 E BURNSIDE ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 342, - "status": "pass", - "in": { - "text": "422 E BURNSIDE ST, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "422 E BURNSIDE ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 343, - "status": "pass", - "in": { - "text": "422 E BURNSIDE ST Portland OR" - }, - "expected": { - "properties": [ - { - "name": "422 E BURNSIDE ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 344, - "status": "pass", - "in": { - "text": "422 E BURNSIDE ST Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "422 E BURNSIDE ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 345, - "status": "pass", - "in": { - "text": "1917 SE TIBBETTS ST, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "1917 SE TIBBETTS ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 346, - "status": "pass", - "in": { - "text": "1917 SE TIBBETTS ST, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "1917 SE TIBBETTS ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 347, - "status": "pass", - "in": { - "text": "1917 SE TIBBETTS ST Portland OR" - }, - "expected": { - "properties": [ - { - "name": "1917 SE TIBBETTS ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 348, - "status": "pass", - "in": { - "text": "1917 SE TIBBETTS ST Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "1917 SE TIBBETTS ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 349, - "status": "pass", - "in": { - "text": "1915 SE TIBBETTS ST, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "1915 SE TIBBETTS ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 350, - "status": "pass", - "in": { - "text": "1915 SE TIBBETTS ST, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "1915 SE TIBBETTS ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 351, - "status": "pass", - "in": { - "text": "1915 SE TIBBETTS ST Portland OR" - }, - "expected": { - "properties": [ - { - "name": "1915 SE TIBBETTS ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 352, - "status": "pass", - "in": { - "text": "1915 SE TIBBETTS ST Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "1915 SE TIBBETTS ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 353, - "status": "pass", - "in": { - "text": "1913 SE TIBBETTS ST, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "1913 SE TIBBETTS ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 354, - "status": "pass", - "in": { - "text": "1913 SE TIBBETTS ST, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "1913 SE TIBBETTS ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 355, - "status": "pass", - "in": { - "text": "1913 SE TIBBETTS ST Portland OR" - }, - "expected": { - "properties": [ - { - "name": "1913 SE TIBBETTS ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 356, - "status": "pass", - "in": { - "text": "1913 SE TIBBETTS ST Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "1913 SE TIBBETTS ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 357, - "status": "pass", - "in": { - "text": "1911 SE TIBBETTS ST, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "1911 SE TIBBETTS ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 358, - "status": "pass", - "in": { - "text": "1911 SE TIBBETTS ST, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "1911 SE TIBBETTS ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 359, - "status": "pass", - "in": { - "text": "1911 SE TIBBETTS ST Portland OR" - }, - "expected": { - "properties": [ - { - "name": "1911 SE TIBBETTS ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 360, - "status": "pass", - "in": { - "text": "1911 SE TIBBETTS ST Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "1911 SE TIBBETTS ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 361, - "status": "pass", - "in": { - "text": "1909 SE TIBBETTS ST, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "1909 SE TIBBETTS ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 362, - "status": "pass", - "in": { - "text": "1909 SE TIBBETTS ST, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "1909 SE TIBBETTS ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 363, - "status": "pass", - "in": { - "text": "1909 SE TIBBETTS ST Portland OR" - }, - "expected": { - "properties": [ - { - "name": "1909 SE TIBBETTS ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 364, - "status": "pass", - "in": { - "text": "1909 SE TIBBETTS ST Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "1909 SE TIBBETTS ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 365, - "status": "pass", - "in": { - "text": "1907 SE TIBBETTS ST, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "1907 SE TIBBETTS ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 366, - "status": "pass", - "in": { - "text": "1907 SE TIBBETTS ST, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "1907 SE TIBBETTS ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 367, - "status": "pass", - "in": { - "text": "1907 SE TIBBETTS ST Portland OR" - }, - "expected": { - "properties": [ - { - "name": "1907 SE TIBBETTS ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 368, - "status": "pass", - "in": { - "text": "1907 SE TIBBETTS ST Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "1907 SE TIBBETTS ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 369, - "status": "pass", - "in": { - "text": "1905 SE TIBBETTS ST, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "1905 SE TIBBETTS ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 370, - "status": "pass", - "in": { - "text": "1905 SE TIBBETTS ST, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "1905 SE TIBBETTS ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 371, - "status": "pass", - "in": { - "text": "1905 SE TIBBETTS ST Portland OR" - }, - "expected": { - "properties": [ - { - "name": "1905 SE TIBBETTS ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 372, - "status": "pass", - "in": { - "text": "1905 SE TIBBETTS ST Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "1905 SE TIBBETTS ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 373, - "status": "pass", - "in": { - "text": "1903 SE TIBBETTS ST, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "1903 SE TIBBETTS ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 374, - "status": "pass", - "in": { - "text": "1903 SE TIBBETTS ST, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "1903 SE TIBBETTS ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 375, - "status": "pass", - "in": { - "text": "1903 SE TIBBETTS ST Portland OR" - }, - "expected": { - "properties": [ - { - "name": "1903 SE TIBBETTS ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 376, - "status": "pass", - "in": { - "text": "1903 SE TIBBETTS ST Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "1903 SE TIBBETTS ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 377, - "status": "pass", - "in": { - "text": "3083 SE 20TH AVE, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "3083 SE 20TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 378, - "status": "pass", - "in": { - "text": "3083 SE 20TH AVE, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "3083 SE 20TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 379, - "status": "pass", - "in": { - "text": "3083 SE 20TH AVE Portland OR" - }, - "expected": { - "properties": [ - { - "name": "3083 SE 20TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 380, - "status": "pass", - "in": { - "text": "3083 SE 20TH AVE Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "3083 SE 20TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 381, - "status": "pass", - "in": { - "text": "3075 SE 20TH AVE, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "3075 SE 20TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 382, - "status": "pass", - "in": { - "text": "3075 SE 20TH AVE, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "3075 SE 20TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 383, - "status": "pass", - "in": { - "text": "3075 SE 20TH AVE Portland OR" - }, - "expected": { - "properties": [ - { - "name": "3075 SE 20TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 384, - "status": "pass", - "in": { - "text": "3075 SE 20TH AVE Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "3075 SE 20TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 385, - "status": "fail", - "in": { - "text": "3073 SE 20TH AVE, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "3073 SE 20TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 386, - "status": "fail", - "in": { - "text": "3073 SE 20TH AVE, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "3073 SE 20TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 387, - "status": "fail", - "in": { - "text": "3073 SE 20TH AVE Portland OR" - }, - "expected": { - "properties": [ - { - "name": "3073 SE 20TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 388, - "status": "fail", - "in": { - "text": "3073 SE 20TH AVE Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "3073 SE 20TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 389, - "status": "pass", - "in": { - "text": "3035 SE 20TH AVE, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "3035 SE 20TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 390, - "status": "pass", - "in": { - "text": "3035 SE 20TH AVE, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "3035 SE 20TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 391, - "status": "pass", - "in": { - "text": "3035 SE 20TH AVE Portland OR" - }, - "expected": { - "properties": [ - { - "name": "3035 SE 20TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 392, - "status": "pass", - "in": { - "text": "3035 SE 20TH AVE Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "3035 SE 20TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 393, - "status": "pass", - "in": { - "text": "3033 SE 20TH AVE, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "3033 SE 20TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 394, - "status": "pass", - "in": { - "text": "3033 SE 20TH AVE, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "3033 SE 20TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 395, - "status": "pass", - "in": { - "text": "3033 SE 20TH AVE Portland OR" - }, - "expected": { - "properties": [ - { - "name": "3033 SE 20TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 396, - "status": "pass", - "in": { - "text": "3033 SE 20TH AVE Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "3033 SE 20TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 397, - "status": "pass", - "in": { - "text": "3031 SE 20TH AVE, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "3031 SE 20TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 398, - "status": "pass", - "in": { - "text": "3031 SE 20TH AVE, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "3031 SE 20TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 399, - "status": "pass", - "in": { - "text": "3031 SE 20TH AVE Portland OR" - }, - "expected": { - "properties": [ - { - "name": "3031 SE 20TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 400, - "status": "pass", - "in": { - "text": "3031 SE 20TH AVE Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "3031 SE 20TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 401, - "status": "pass", - "in": { - "text": "3027 SE 20TH AVE, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "3027 SE 20TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 402, - "status": "pass", - "in": { - "text": "3027 SE 20TH AVE, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "3027 SE 20TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 403, - "status": "pass", - "in": { - "text": "3027 SE 20TH AVE Portland OR" - }, - "expected": { - "properties": [ - { - "name": "3027 SE 20TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 404, - "status": "pass", - "in": { - "text": "3027 SE 20TH AVE Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "3027 SE 20TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 405, - "status": "pass", - "in": { - "text": "OREGON ZOO, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "OREGON ZOO", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 406, - "status": "pass", - "in": { - "text": "OREGON ZOO, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "OREGON ZOO", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 407, - "status": "fail", - "in": { - "text": "OREGON ZOO Portland OR" - }, - "expected": { - "properties": [ - { - "name": "OREGON ZOO", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 408, - "status": "fail", - "in": { - "text": "OREGON ZOO Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "OREGON ZOO", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 409, - "status": "fail", - "in": { - "text": "10647 SW RIVER DR, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "10647 SW RIVER DR", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 410, - "status": "fail", - "in": { - "text": "10647 SW RIVER DR, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "10647 SW RIVER DR", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 411, - "status": "fail", - "in": { - "text": "10647 SW RIVER DR Portland OR" - }, - "expected": { - "properties": [ - { - "name": "10647 SW RIVER DR", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 412, - "status": "fail", - "in": { - "text": "10647 SW RIVER DR Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "10647 SW RIVER DR", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 413, - "status": "pass", - "in": { - "text": "1831 SW RIVER DR, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "1831 SW RIVER DR", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 414, - "status": "pass", - "in": { - "text": "1831 SW RIVER DR, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "1831 SW RIVER DR", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 415, - "status": "pass", - "in": { - "text": "1831 SW RIVER DR Portland OR" - }, - "expected": { - "properties": [ - { - "name": "1831 SW RIVER DR", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 416, - "status": "pass", - "in": { - "text": "1831 SW RIVER DR Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "1831 SW RIVER DR", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 417, - "status": "pass", - "in": { - "text": "825 NE MULTNOMAH ST, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "825 NE MULTNOMAH ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 418, - "status": "pass", - "in": { - "text": "825 NE MULTNOMAH ST, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "825 NE MULTNOMAH ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 419, - "status": "pass", - "in": { - "text": "825 NE MULTNOMAH ST Portland OR" - }, - "expected": { - "properties": [ - { - "name": "825 NE MULTNOMAH ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 420, - "status": "pass", - "in": { - "text": "825 NE MULTNOMAH ST Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "825 NE MULTNOMAH ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 421, - "status": "pass", - "in": { - "text": "1220 SW 3RD AVE, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "1220 SW 3RD AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 422, - "status": "pass", - "in": { - "text": "1220 SW 3RD AVE, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "1220 SW 3RD AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 423, - "status": "pass", - "in": { - "text": "1220 SW 3RD AVE Portland OR" - }, - "expected": { - "properties": [ - { - "name": "1220 SW 3RD AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 424, - "status": "pass", - "in": { - "text": "1220 SW 3RD AVE Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "1220 SW 3RD AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 425, - "status": "pass", - "in": { - "text": "30 NE 147TH AVE, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "30 NE 147TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 426, - "status": "pass", - "in": { - "text": "30 NE 147TH AVE, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "30 NE 147TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 427, - "status": "pass", - "in": { - "text": "30 NE 147TH AVE Portland OR" - }, - "expected": { - "properties": [ - { - "name": "30 NE 147TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 428, - "status": "pass", - "in": { - "text": "30 NE 147TH AVE Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "30 NE 147TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 429, - "status": "pass", - "in": { - "text": "14715 E BURNSIDE ST, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "14715 E BURNSIDE ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 430, - "status": "pass", - "in": { - "text": "14715 E BURNSIDE ST, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "14715 E BURNSIDE ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 431, - "status": "pass", - "in": { - "text": "14715 E BURNSIDE ST Portland OR" - }, - "expected": { - "properties": [ - { - "name": "14715 E BURNSIDE ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 432, - "status": "pass", - "in": { - "text": "14715 E BURNSIDE ST Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "14715 E BURNSIDE ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 433, - "status": "pass", - "in": { - "text": "1000 SW BROADWAY ST, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "1000 SW BROADWAY", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 434, - "status": "pass", - "in": { - "text": "1000 SW BROADWAY ST, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "1000 SW BROADWAY", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 435, - "status": "pass", - "in": { - "text": "1000 SW BROADWAY ST Portland OR" - }, - "expected": { - "properties": [ - { - "name": "1000 SW BROADWAY", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 436, - "status": "pass", - "in": { - "text": "1000 SW BROADWAY ST Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "1000 SW BROADWAY", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 437, - "status": "pass", - "in": { - "text": "1400 SW 5TH AVE, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "1400 SW 5TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 438, - "status": "pass", - "in": { - "text": "1400 SW 5TH AVE, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "1400 SW 5TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 439, - "status": "pass", - "in": { - "text": "1400 SW 5TH AVE Portland OR" - }, - "expected": { - "properties": [ - { - "name": "1400 SW 5TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 440, - "status": "pass", - "in": { - "text": "1400 SW 5TH AVE Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "1400 SW 5TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 441, - "status": "pass", - "in": { - "text": "2211 SW 1ST AVE, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "2211 SW 1ST AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 442, - "status": "pass", - "in": { - "text": "2211 SW 1ST AVE, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "2211 SW 1ST AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 443, - "status": "pass", - "in": { - "text": "2211 SW 1ST AVE Portland OR" - }, - "expected": { - "properties": [ - { - "name": "2211 SW 1ST AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 444, - "status": "pass", - "in": { - "text": "2211 SW 1ST AVE Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "2211 SW 1ST AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 445, - "status": "pass", - "in": { - "text": "2221 SW 1ST AVE, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "2221 SW 1ST AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 446, - "status": "pass", - "in": { - "text": "2221 SW 1ST AVE, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "2221 SW 1ST AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 447, - "status": "pass", - "in": { - "text": "2221 SW 1ST AVE Portland OR" - }, - "expected": { - "properties": [ - { - "name": "2221 SW 1ST AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 448, - "status": "pass", - "in": { - "text": "2221 SW 1ST AVE Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "2221 SW 1ST AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 449, - "status": "pass", - "in": { - "text": "1600 SW 4TH AVE, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "1600 SW 4TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 450, - "status": "pass", - "in": { - "text": "1600 SW 4TH AVE, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "1600 SW 4TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 451, - "status": "pass", - "in": { - "text": "1600 SW 4TH AVE Portland OR" - }, - "expected": { - "properties": [ - { - "name": "1600 SW 4TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 452, - "status": "pass", - "in": { - "text": "1600 SW 4TH AVE Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "1600 SW 4TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 453, - "status": "pass", - "in": { - "text": "8205 SW 24TH AVE, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "8205 SW 24TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 454, - "status": "pass", - "in": { - "text": "8205 SW 24TH AVE, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "8205 SW 24TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 455, - "status": "pass", - "in": { - "text": "8205 SW 24TH AVE Portland OR" - }, - "expected": { - "properties": [ - { - "name": "8205 SW 24TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 456, - "status": "pass", - "in": { - "text": "8205 SW 24TH AVE Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "8205 SW 24TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 457, - "status": "pass", - "in": { - "text": "537 SE ASH ST, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "537 SE ASH ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 458, - "status": "pass", - "in": { - "text": "537 SE ASH ST, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "537 SE ASH ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 459, - "status": "pass", - "in": { - "text": "537 SE ASH ST Portland OR" - }, - "expected": { - "properties": [ - { - "name": "537 SE ASH ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 460, - "status": "pass", - "in": { - "text": "537 SE ASH ST Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "537 SE ASH ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 461, - "status": "pass", - "in": { - "text": "524 E BURNSIDE ST, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "524 E BURNSIDE ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 462, - "status": "pass", - "in": { - "text": "524 E BURNSIDE ST, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "524 E BURNSIDE ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 463, - "status": "pass", - "in": { - "text": "524 E BURNSIDE ST Portland OR" - }, - "expected": { - "properties": [ - { - "name": "524 E BURNSIDE ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 464, - "status": "pass", - "in": { - "text": "524 E BURNSIDE ST Portland Oregon" - }, - "expected": { - "properties": [ - { - "name": "524 E BURNSIDE ST", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 465, - "status": "pass", - "in": { - "text": "309 SE 129TH AVE, Portland, OR" - }, - "expected": { - "properties": [ - { - "name": "309 SE 129TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 466, - "status": "pass", - "in": { - "text": "309 SE 129TH AVE, Portland, Oregon" - }, - "expected": { - "properties": [ - { - "name": "309 SE 129TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 467, - "status": "pass", - "in": { - "text": "309 SE 129TH AVE Portland OR" - }, - "expected": { - "properties": [ - { - "name": "309 SE 129TH AVE", - "locality": "Portland", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 468, - "status": "fail", - "in": { - "text": "309 SE 129TH AVE Oak Grove Oregon" - }, - "expected": { - "properties": [ - { - "name": "309 SE 129TH AVE", - "locality": "Oak Grove", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 469, - "status": "pass", - "in": { - "text": "2817 SE PARK AVE, Oak Grove, OR" - }, - "expected": { - "properties": [ - { - "name": "2817 SE PARK AVE", - "locality": "Oak Grove", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 470, - "status": "pass", - "in": { - "text": "2817 SE PARK AVE, Oak Grove, Oregon" - }, - "expected": { - "properties": [ - { - "name": "2817 SE PARK AVE", - "locality": "Oak Grove", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 471, - "status": "pass", - "in": { - "text": "2817 SE PARK AVE Oak Grove OR" - }, - "expected": { - "properties": [ - { - "name": "2817 SE PARK AVE", - "locality": "Oak Grove", - "region": "Oregon", - "region_a": "OR" - } - ] - } - }, - { - "id": 472, - "status": "pass", - "in": { - "text": "2817 SE PARK AVE Oak Grove Oregon" - }, - "expected": { - "properties": [ - { - "name": "2817 SE PARK AVE", - "locality": "Oak Grove", - "region": "Oregon", - "region_a": "OR" + "name": "52 Ten Eyck St", + "locality": "New York", + "region": "New York", + "region_a": "NY", + "borough": "Brooklyn", + "county": "Kings County", + "label": "52 Ten Eyck St, Brooklyn, New York, NY, USA" } ] } diff --git a/projects/new-york-city/test_cases/search_venue.json b/projects/new-york-city/test_cases/search_venue.json index 7ac2ba57..eeb4a36c 100644 --- a/projects/new-york-city/test_cases/search_venue.json +++ b/projects/new-york-city/test_cases/search_venue.json @@ -5,42 +5,21 @@ "tests": [ { "id": 1, - "status": "fail", - "notes": "portland international should come up for PDX", + "status": "pass", + "notes": "John F. Kennedy International Airport should come up for JFK", "in": { - "text": "pdx" + "text": "JFK" }, "expected": { "properties": [ { "layer": "venue", - "name": "Portland International Airport", + "name": "John F. Kennedy International Airport", "country_a": "USA", "country": "United States", - "region": "Oregon", - "region_a": "OR", - "locality": "Portland" - } - ] - } - }, - { - "id": 2, - "status": "fail", - "notes": "portland international should come up for PDX", - "in": { - "text": "pdx airport" - }, - "expected": { - "properties": [ - { - "layer": "venue", - "name": "Portland International Airport", - "country_a": "USA", - "country": "United States", - "region": "Oregon", - "region_a": "OR", - "locality": "Portland" + "region": "New York", + "region_a": "NY", + "locality": "New York" } ] } From 73fbbb23b8315fa76dbf188eabbc76c06287a256 Mon Sep 17 00:00:00 2001 From: Julian Simioni Date: Thu, 23 Apr 2020 17:17:48 -0700 Subject: [PATCH 16/98] Add Geonames importer Also matches the order of importers specified in `docker-compose.yml` to the Australia project --- projects/new-york-city/docker-compose.yml | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/projects/new-york-city/docker-compose.yml b/projects/new-york-city/docker-compose.yml index 729f5026..66cbc559 100644 --- a/projects/new-york-city/docker-compose.yml +++ b/projects/new-york-city/docker-compose.yml @@ -59,13 +59,14 @@ services: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" - "./blacklist/:/data/blacklist" - transit: - image: pelias/transit:master - container_name: pelias_transit + geonames: + image: pelias/geonames:master + container_name: pelias_geonames user: "${DOCKER_USER}" volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" + - "./blacklist/:/data/blacklist" csv-importer: image: pelias/csv-importer:master container_name: pelias_csv_importer @@ -74,6 +75,13 @@ services: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" - "./blacklist/:/data/blacklist" + transit: + image: pelias/transit:master + container_name: pelias_transit + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" polylines: image: pelias/polylines:master container_name: pelias_polylines From 8167bc2a43529acb29467f314db4a3e38ee86a52 Mon Sep 17 00:00:00 2001 From: Julian Simioni Date: Thu, 23 Apr 2020 17:18:51 -0700 Subject: [PATCH 17/98] Add `whosonfirst.countryCode` setting --- projects/new-york-city/pelias.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/new-york-city/pelias.json b/projects/new-york-city/pelias.json index f265630b..c39c880a 100644 --- a/projects/new-york-city/pelias.json +++ b/projects/new-york-city/pelias.json @@ -70,8 +70,8 @@ }, "whosonfirst": { "datapath": "/data/whosonfirst", - "importVenues": false, "importPostalcodes": true, + "countryCode": "NY", "importPlace": [ "85977539" ] From d9b0fffae8bf181eb79df2c0eb347df2ea75b612 Mon Sep 17 00:00:00 2001 From: Bart Hanssens Date: Sat, 2 May 2020 18:22:06 +0200 Subject: [PATCH 18/98] Update pelias.json for Belgium Include the official data from the 3 regions (updated regurarly, full coverage) in Belgium, see also https://github.com/openaddresses/openaddresses/pull/4582 --- projects/belgium/pelias.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/belgium/pelias.json b/projects/belgium/pelias.json index 620c40d6..b33ea227 100644 --- a/projects/belgium/pelias.json +++ b/projects/belgium/pelias.json @@ -50,7 +50,7 @@ }, "openaddresses": { "datapath": "/data/openaddresses", - "files": ["be/bru/brussels-fr.csv", "be/bru/brussels-nl.csv", "be/flanders.csv", "be/wal/namur.csv"] + "files": ["be/bru/bosa-region-brussels-nl.csv", "be/bru/bosa-region-brussels-fr.csv", "be/vlg/bosa-region-flanders-nl.csv", "be/wal/bosa-region-wallonia-fr.csv"] }, "polyline": { "datapath": "/data/polylines", From a3fb934eb488db178871f1ba58a43599b8378484 Mon Sep 17 00:00:00 2001 From: Peter Johnson Date: Tue, 12 May 2020 12:48:48 +0200 Subject: [PATCH 19/98] docs: add project header to readme --- README.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/README.md b/README.md index fd4b1141..2b698e54 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,26 @@ +

+ +

+

A modular, open-source search engine for our world.

+

Pelias is a geocoder powered completely by open data, available freely to everyone.

+

+ + + +

+

+ Local Installation · + Cloud Webservice · + Documentation · + Community Chat +

+
+What is Pelias? +
+Pelias is a search engine for places worldwide, powered by open data. It turns addresses and place names into geographic coordinates, and turns geographic coordinates into places and addresses. With Pelias, you’re able to turn your users’ place searches into actionable geodata and transform your geodata into real places. +

+We think open data, open source, and open strategy win over proprietary solutions at any part of the stack and we want to ensure the services we offer are in line with that vision. We believe that an open geocoder improves over the long-term only if the community can incorporate truly representative local knowledge. +
# Pelias in Docker From 16bc78501c94b68d2a0cdd2503fcbb0c7cb32242 Mon Sep 17 00:00:00 2001 From: missinglink Date: Mon, 18 May 2020 15:54:14 +0200 Subject: [PATCH 20/98] docs: resolve inconsistency between differing install directory instructions --- README.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 40a40e25..07db8fe8 100644 --- a/README.md +++ b/README.md @@ -108,8 +108,14 @@ You can find the `pelias` file in the root of this repository. Advanced users may have a preference how this is done on their system, but a basic example would be to do something like: ```bash -git clone https://github.com/pelias/docker.git ~/pelias -ln -s ~/pelias/pelias /usr/local/bin/pelias +# change directory to the where you would like to install Pelias +# cd /path/to/install + +# clone this repository +git clone https://github.com/pelias/docker.git && cd docker + +# install pelias script +ln -s "$(pwd)/pelias" /usr/local/bin/pelias ``` Once the command is correctly installed you should be able to run the following command to confirm the pelias command is available on your path: From d2403f901c7348086bb5155b5e783d77d9ed7280 Mon Sep 17 00:00:00 2001 From: Julian Simioni Date: Fri, 5 Jun 2020 10:48:14 -0700 Subject: [PATCH 21/98] Allow parallelizing the CSV importer Set $CSV_PARALLELISM to a number to use. --- cmd/import.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/import.sh b/cmd/import.sh index 0d5b93b0..c7adc73c 100644 --- a/cmd/import.sh +++ b/cmd/import.sh @@ -8,7 +8,7 @@ function import_osm(){ compose_run 'openstreetmap' './bin/start'; } function import_polylines(){ compose_run 'polylines' './bin/start'; } function import_geonames(){ compose_run 'geonames' './bin/start'; } function import_transit(){ compose_run 'transit' './bin/start'; } -function import_csv(){ compose_run 'csv-importer' './bin/start'; } +function import_csv(){ compose_run 'csv-importer' './bin/parallel' ${CSV_PARALLELISM:-1}; } register 'import' 'wof' '(re)import whosonfirst data' import_wof register 'import' 'oa' '(re)import openaddresses data' import_oa From 2eb0a6eda9b5ffe53a8a5b0f7691202bf0b9ad89 Mon Sep 17 00:00:00 2001 From: Julian Simioni Date: Mon, 8 Jul 2019 11:59:41 -0400 Subject: [PATCH 22/98] Add Texas project --- projects/texas/.env | 4 + projects/texas/README.md | 35 + projects/texas/blacklist/osm.txt | 0 projects/texas/docker-compose.yml | 127 + projects/texas/pelias.json | 227 + projects/texas/synonyms/custom_name.txt | 138 + projects/texas/synonyms/custom_street.txt | 133 + .../texas/test_cases/libpostal_quirks.json | 35 + projects/texas/test_cases/search_address.json | 8057 +++++++++++++++++ projects/texas/test_cases/search_venue.json | 49 + 10 files changed, 8805 insertions(+) create mode 100644 projects/texas/.env create mode 100644 projects/texas/README.md create mode 100644 projects/texas/blacklist/osm.txt create mode 100644 projects/texas/docker-compose.yml create mode 100644 projects/texas/pelias.json create mode 100644 projects/texas/synonyms/custom_name.txt create mode 100644 projects/texas/synonyms/custom_street.txt create mode 100644 projects/texas/test_cases/libpostal_quirks.json create mode 100644 projects/texas/test_cases/search_address.json create mode 100644 projects/texas/test_cases/search_venue.json diff --git a/projects/texas/.env b/projects/texas/.env new file mode 100644 index 00000000..30916b1f --- /dev/null +++ b/projects/texas/.env @@ -0,0 +1,4 @@ +COMPOSE_PROJECT_NAME=pelias +DATA_DIR=/tmp/pelias/texas +DOCKER_USER=1000 +OPENADDRESSES_PARALLELISM=2 diff --git a/projects/texas/README.md b/projects/texas/README.md new file mode 100644 index 00000000..69893ca9 --- /dev/null +++ b/projects/texas/README.md @@ -0,0 +1,35 @@ +# Texas + +This project is configured to download/prepare/build a complete Pelias installation for the state of Texas, USA. + +It is intended as an example for other projects, feel free to copy->paste these files to a new project directory to kick-start your own project. + +# Setup + +Please refer to the instructions at https://github.com/pelias/docker in order to install and configure your docker environment. + +The minimum configuration required in order to run this project are [installing prerequisites](https://github.com/pelias/docker#prerequisites), [install the pelias command](https://github.com/pelias/docker#installing-the-pelias-command) and [configure the environment](https://github.com/pelias/docker#configure-environment). + +Please ensure that's all working fine before continuing. + +# Run a Build + +To run a complete build, execute the following commands: + +```bash +pelias compose pull +pelias elastic start +pelias elastic wait +pelias elastic create +pelias download all +pelias prepare all +pelias import all +pelias compose up +pelias test run +``` + +# Make an Example Query + +You can now make queries against your new Pelias build: + +http://localhost:4000/v1/search?text=iah diff --git a/projects/texas/blacklist/osm.txt b/projects/texas/blacklist/osm.txt new file mode 100644 index 00000000..e69de29b diff --git a/projects/texas/docker-compose.yml b/projects/texas/docker-compose.yml new file mode 100644 index 00000000..9c635d5a --- /dev/null +++ b/projects/texas/docker-compose.yml @@ -0,0 +1,127 @@ +version: '3' +networks: + default: + driver: bridge +services: + libpostal: + image: pelias/libpostal-service + container_name: pelias_libpostal + user: "${DOCKER_USER}" + restart: always + ports: [ "4400:4400" ] + schema: + image: pelias/schema:elasticsearch-5-schema + container_name: pelias_schema + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + api: + image: pelias/api:master + container_name: pelias_api + user: "${DOCKER_USER}" + restart: always + environment: [ "PORT=4000" ] + ports: [ "4000:4000" ] + volumes: + - "./pelias.json:/code/pelias.json" + placeholder: + image: pelias/placeholder:master + container_name: pelias_placeholder + user: "${DOCKER_USER}" + restart: always + environment: [ "PORT=4100" ] + ports: [ "4100:4100" ] + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + - "./blacklist/:/data/blacklist" + whosonfirst: + image: pelias/whosonfirst:master + container_name: pelias_whosonfirst + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + - "./blacklist/:/data/blacklist" + openstreetmap: + image: pelias/openstreetmap:master + container_name: pelias_openstreetmap + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + - "./blacklist/:/data/blacklist" + openaddresses: + image: pelias/openaddresses:master + container_name: pelias_openaddresses + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + - "./blacklist/:/data/blacklist" + csv-importer: + image: pelias/csv-importer:master + container_name: pelias_csv_importer + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + - "./blacklist/:/data/blacklist" + transit: + image: pelias/transit:master + container_name: pelias_transit + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + polylines: + image: pelias/polylines:master + container_name: pelias_polylines + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + interpolation: + image: pelias/interpolation:master + container_name: pelias_interpolation + user: "${DOCKER_USER}" + restart: always + environment: [ "PORT=4300" ] + ports: [ "4300:4300" ] + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + pip: + image: pelias/pip-service:master + container_name: pelias_pip-service + user: "${DOCKER_USER}" + restart: always + environment: [ "PORT=4200" ] + ports: [ "4200:4200" ] + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + elasticsearch: + image: pelias/elasticsearch + container_name: pelias_elasticsearch + restart: always + ports: [ "9200:9200", "9300:9300" ] + volumes: + - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" + ulimits: + memlock: + soft: -1 + hard: -1 + nofile: + soft: 65536 + hard: 65536 + cap_add: [ "IPC_LOCK" ] + fuzzy-tester: + image: pelias/fuzzy-tester:master + container_name: pelias_fuzzy_tester + user: "${DOCKER_USER}" + restart: "no" + command: "--help" + volumes: + - "./pelias.json:/code/pelias.json" + - "./test_cases:/code/pelias/fuzzy-tester/test_cases" diff --git a/projects/texas/pelias.json b/projects/texas/pelias.json new file mode 100644 index 00000000..06cc26be --- /dev/null +++ b/projects/texas/pelias.json @@ -0,0 +1,227 @@ +{ + "logger": { + "level": "info", + "timestamp": false + }, + "esclient": { + "apiVersion": "7.5", + "hosts": [ + { "host": "elasticsearch" } + ] + }, + "elasticsearch": { + "settings": { + "index": { + "refresh_interval": "10s", + "number_of_replicas": "0", + "number_of_shards": "1" + } + } + }, + "acceptance-tests": { + "endpoints": { + "docker": "http://api:4000/v1/" + } + }, + "api": { + "textAnalyzer": "libpostal", + "services": { + "placeholder": { "url": "http://placeholder:4100" }, + "pip": { "url": "http://pip:4200" }, + "interpolation": { "url": "http://interpolation:4300" }, + "libpostal": { "url": "http://libpostal:4400" } + } + }, + "imports": { + "adminLookup": { + "enabled": true + }, + "blacklist": { + "files": [ + "/data/blacklist/osm.txt" + ] + }, + "geonames": { + "datapath": "/data/geonames", + "countryCode": "US" + }, + "openstreetmap": { + "download": [ + { "sourceURL": "http://download.geofabrik.de/north-america/us/texas-latest.osm.pbf" } + ], + "leveldbpath": "/tmp", + "datapath": "/data/openstreetmap", + "import": [{ + "filename": "texas-latest.osm.pbf" + }] + }, + "openaddresses": { + "datapath": "/data/openaddresses", + "files": [ + "us/tx/anderson.csv", + "us/tx/austin.csv", + "us/tx/bandera.csv", + "us/tx/bastrop.csv", + "us/tx/bexar.csv", + "us/tx/brazoria.csv", + "us/tx/brazos.csv", + "us/tx/burleson.csv", + "us/tx/camp.csv", + "us/tx/capcog.csv", + "us/tx/carson.csv", + "us/tx/city_of_abilene.csv", + "us/tx/city_of_alvin.csv", + "us/tx/city_of_amarillo.csv", + "us/tx/city_of_austin.csv", + "us/tx/city_of_beaumont.csv", + "us/tx/city_of_buda.csv", + "us/tx/city_of_carrollton.csv", + "us/tx/city_of_cedar_park.csv", + "us/tx/city_of_colleyville.csv", + "us/tx/city_of_dalhart.csv", + "us/tx/city_of_denison.csv", + "us/tx/city_of_denton.csv", + "us/tx/city_of_flower_mound.csv", + "us/tx/city_of_garland.csv", + "us/tx/city_of_horseshoe_bay.csv", + "us/tx/city_of_houston.csv", + "us/tx/city_of_hurst.csv", + "us/tx/city_of_killeen.csv", + "us/tx/city_of_lewisville.csv", + "us/tx/city_of_longview.csv", + "us/tx/city_of_mansfield.csv", + "us/tx/city_of_mckinney.csv", + "us/tx/city_of_palestine.csv", + "us/tx/city_of_pearland.csv", + "us/tx/city_of_pflugerville.csv", + "us/tx/city_of_rosenberg.csv", + "us/tx/city_of_san_antonio.csv", + "us/tx/city_of_sherman.csv", + "us/tx/city_of_southlake.csv", + "us/tx/city_of_sugar_land.csv", + "us/tx/city_of_temple.csv", + "us/tx/city_of_university_park.csv", + "us/tx/city_of_waco.csv", + "us/tx/city_of_waxahachie.csv", + "us/tx/colleyville.csv", + "us/tx/collin.csv", + "us/tx/colorado.csv", + "us/tx/comal.csv", + "us/tx/comanche.csv", + "us/tx/coryell.csv", + "us/tx/dallam.csv", + "us/tx/dallas.csv", + "us/tx/delta.csv", + "us/tx/denton.csv", + "us/tx/desoto.csv", + "us/tx/dimmit.csv", + "us/tx/duval.csv", + "us/tx/ector.csv", + "us/tx/el_paso.csv", + "us/tx/ellis.csv", + "us/tx/fannin.csv", + "us/tx/fayette.csv", + "us/tx/fisher.csv", + "us/tx/freestone.csv", + "us/tx/gaines.csv", + "us/tx/galveston.csv", + "us/tx/gillespie.csv", + "us/tx/gray.csv", + "us/tx/greater_houston.csv", + "us/tx/grimes.csv", + "us/tx/guadalupe.csv", + "us/tx/hansford.csv", + "us/tx/hartley.csv", + "us/tx/hays.csv", + "us/tx/hidalgo_county.csv", + "us/tx/hood.csv", + "us/tx/houston.csv", + "us/tx/howard.csv", + "us/tx/hunt.csv", + "us/tx/johnson.csv", + "us/tx/kaufman.csv", + "us/tx/keller.csv", + "us/tx/kendall.csv", + "us/tx/kerr.csv", + "us/tx/lamar.csv", + "us/tx/lasalle.csv", + "us/tx/lee.csv", + "us/tx/libery.csv", + "us/tx/liveoak.csv", + "us/tx/llano.csv", + "us/tx/lubbock.csv", + "us/tx/madison.csv", + "us/tx/marion.csv", + "us/tx/maverick.csv", + "us/tx/mcculloch.csv", + "us/tx/mcmullen.csv", + "us/tx/medina.csv", + "us/tx/midland.csv", + "us/tx/milam.csv", + "us/tx/mills.csv", + "us/tx/montgomery.csv", + "us/tx/moore.csv", + "us/tx/nacogdoches.csv", + "us/tx/new_braunfels.csv", + "us/tx/nolan.csv", + "us/tx/north_richland_hills.csv", + "us/tx/ochiltree.csv", + "us/tx/orange.csv", + "us/tx/parmer.csv", + "us/tx/plano.csv", + "us/tx/rains.csv", + "us/tx/reeves.csv", + "us/tx/rockwall.csv", + "us/tx/round_rock.csv", + "us/tx/runnels.csv", + "us/tx/san_antonio.csv", + "us/tx/schleicher.csv", + "us/tx/shackelford.csv", + "us/tx/statewide-partial.csv", + "us/tx/tarrant-county.csv", + "us/tx/texoma-counties.csv", + "us/tx/titus.csv", + "us/tx/trinity.csv", + "us/tx/uvalde.csv", + "us/tx/vanzandt.csv", + "us/tx/waco.csv", + "us/tx/walker.csv", + "us/tx/washington.csv", + "us/tx/wharton.csv", + "us/tx/williamson.csv", + "us/tx/wilson.csv", + "us/tx/wood.csv", + "us/tx/young.csv", + "us/tx/zavala.csv" + ] + }, + "polyline": { + "datapath": "/data/polylines", + "files": [ "extract.0sv" ] + }, + "whosonfirst": { + "datapath": "/data/whosonfirst", + "importVenues": false, + "importPostalcodes": true, + "countryCode": "US", + "importPlace": [ + "85688753" + ] + }, + "transit": { + "datapath": "/data/transit", + "feeds": [ + ] + }, + "interpolation": { + "download": { + "tiger": { + "datapath": "/data/tiger", + "states": [ + { "state_code": 48 } + ] + } + } + } + } +} diff --git a/projects/texas/synonyms/custom_name.txt b/projects/texas/synonyms/custom_name.txt new file mode 100644 index 00000000..38e0d35e --- /dev/null +++ b/projects/texas/synonyms/custom_name.txt @@ -0,0 +1,138 @@ + +shopping,store,shop,retail,grocery,mall + +# Transit Centers +Oregon City Transit Center,Oregon City TC,OCTC +Barbur Blvd Transit Center,BBTC,Barbur Blvd TC,Barbur TC +Beaverton Transit Center,BTC,Beaverton TC +Clackamas Town Center Transit Center,CTC,Clackamas TC,Clackamas Town Center TC,Clackamas Transit Center +Gateway/NE 99th Ave Transit Center,GTC,Gateway TC,Gateway Transit Center +Gresham Central Transit Center,GCTC,Gresham Central TC,Gresham TC +Hillsboro Center/SE 3rd Ave Transit Center, HCTC, Hillsboro TC, Hillsboro Transit Center +Hollywood/NE 42nd Ave Transit Center,HTC, HOllywood TC,HOllywood Transit Center +Lake Oswego Transit Center, LOTC,Lake Oswego TC +N Lombard Transit Center, Lombard Transit Center, Lombard TC,NLTC +Parkrose/Sumner Transit Center, Parkrose Transit Center,Parkrose TC,PRSTC,PTC +Rose Quarter Transit Center,RQTC, Rose Quarter TC +Sunset Transit Center,Sunset TC, STC +Tigard Transit Center,Tigard TC,TTC +Washington Square Transit Center,WSTC,Washington Square TC +Willow Creek/SW 185th Ave Transit Center, Willow Creek TC, Willow Creek Transit Center, WCTC + +# Rail Stations +Yamhill District MAX Station,YAMX +Washington/SE 12th Ave MAX Station, WASX +Tuality Hospital/SE 8th Ave MAX Station, TUAX +Skidmore Fountain MAX Station, SKIX +SE Powell Blvd MAX Station,POWX +SE Holgate BLvd MAX Station,HOLX +SE Fuller Rd MAX Station,FULX +SE Flavel St MAX Station,FLAX +SE Division St MAX Station,DIVX +Ruby Junction/E 197th Ave MAX Station,RUBX +Rosa Parks MAX Station,N Portland Blvd MAX Station,ROSX,RPX +Rockwood/E 188th Ave MAX Station,ROCX +Quatama/NW 205th Ave MAX Station,QUAX +Providence Park MAX Station,Civic Stadium MAX Station,JELD-WEN Field MAX Station,PGE Park MAX Station,PPX,PROX +Portland Int'l Airport MAX Station; PDXX +Pioneer Square South MAX Station,PCSS MAX +Pioneer Square North MAX Station,PCSN MAX +Parkrose/Sumner TC MAX Station,Parkrose MAX Station,PTC +Overlook Park MAX Station,OVEX +Orenco/NW 231st Ave MAX Station,OREX +Old Town/Chinatown MAX Station,OLDX +Oak/SW 1st Ave MAX Station,OAKX +N Prescott St MAX Station,PREX +N Killingsworth St MAX Station,KILX +NE 60th Ave MAX Station,60X +NE 82nd Ave MAX Station,82X +Mt Hood Ave MAX Station,MTHX +Millikan Way MAX Station,MILX +Merlo Rd/SW 158th Ave MAX Station,MERX +Lloyd Center/NE 11th Ave MAX Station,LLOX +Library/SW 9th Ave MAX Station,LIBX +Lents Town Center/Foster Rd MAX Station,LENX +Kings Hill/SW Salmon St MAX Station,KINX +Kenton/N Denver Ave MAX Station,KENX +Interstate/Rose Quarter MAX Station,IRQ MAX,IRQ +Hawthorn Farm MAX Station,HAWX +Goose Hollow/SW Jefferson St MAX Station,GHX,GOOX +Galleria/SW 10th Ave MAX Station,GALX +Fair Complex/Hillsboro Airport MAX Station,FAIX +Expo Center MAX Station,EXPX +E 162nd Ave MAX Station,162X +E 172nd Ave MAX Station,172X +E 181st Ave MAX Station,181X +E 102nd Ave MAX Station,102X +E 122nd Ave MAX Station,122X +E 148th Ave MAX Station,148X +Elmonica/SW 170th Ave MAX Station,ELMX,Elmonica +Delta Park/Vanport MAX Station,DELX,DPV MAX,DPX +Convention Center MAX Station,CCX,CONX +Cleveland Ave MAX Station,CLEX +Cascades MAX Station,CASX +Beaverton Creek MAX Station,BCRX +Beaverton Central MAX Station,BEAX +Albina/Mississippi MAX Station,ALBX + +# TriMet Facilities +ATP/Nela,Nela +Center Street Bus Maintenance, Center Garage +Elmonica Operations Facility,Elmo,Elmonica +Merlo Operations Facility,Merlo Garage, Merlo +Powell Operations Facility,Powell Garage +Transit Mobility Center,ATP Mobility Center,Mobility Center +TriMet Administration Headquarters,Admin Building,Administration Building,Harrison Square,TriMet Administrative Offices +TriMet Operations Headquarters,Center St, Center Street,TriMet Lost & Found +#Trimet Ticket Office,TTO +Vintage Trolley Barn,Trolley Barn + +# Misc Landmarks +# FXP: removed psu and pdx, since they led to ambig hits +Oregon Zoo,Zoo,Washington Park Zoo +Portland State University,Portland State +Portland International Raceway,PIR +Portland International Airport,Portland Airport +Portland Community College - Cascade,PCC Cascade +Portland Community College - Rock Creek,PCC Rock Creek +Portland Community College - Southeast,PCC Southeast, PCC Southeast Center +Portland Community College - Sylvania,PCC Sylvania +Portland Community College - Willow Creek Center,PCC Willow Creek Center +Pioneer Courthouse Square,Downtown Portland,PCS +Oregon Rail Heritage Center,ORHF +Oregon Museum of Science and Industry,OMSI +Oregon Health & Science University,OHSU,Oregon Health Sciences University +Oregon College of Oriental Medicine,OCOM +Moda Center at the Rose Quarter,Moda Center,Rose Garden Arena +Clackamas Community College,CCC +Clackamas Community College Harmony Campus, CCCH +Gordon Faber Recreation Complex,Hillsboro Stadium,Ron Tonkin Field +Providence Park,Civic Stadium,JELD-WEN Field,PGE Park +OSHU Collaborative Life Sciences Building, Skourtes Tower, CLSB, School of Dentistry +Aging & Disability, DHS +African Youth and Community Organization, AYCO + +north, N +south, S +east, E +west, W +north west => northwest +north east => northeast +south west => southwest +south east => southeast +northwest, NW +northeast, NE +southwest, SW +southeast, SE + +Portland, Portland City Center +Int'l, international +clackamus, clackamas +clack, clackamas +p-town, portland +casscade, cascade + +# street names +Tualatin Valley Hwy,TV Hwy,TVH,TVHWY +Beaverton-Hillsdale Hwy,Beaverton- Hillsdale Hwy,BH Hwy,BHH +MLK,M L King,Martin Luther King diff --git a/projects/texas/synonyms/custom_street.txt b/projects/texas/synonyms/custom_street.txt new file mode 100644 index 00000000..32a4be71 --- /dev/null +++ b/projects/texas/synonyms/custom_street.txt @@ -0,0 +1,133 @@ + +Tualatin Valley Hwy,TV Hwy,TVH,TVHWY +Beaverton Hillsdale HWY,Beaverton-Hillsdale HWY,BH HYW,BHH +Beaverton Hillsdale,Beaverton-Hillsdale,BH +Martin Luther King,ML King,M L King,MLK +Doernbecher,Dornbecher,Doernbecker,Dornbecker,Dornbecka +Native American Youth => NAYA +Transit Center => TC +Park Ride => PR +Park & Ride => PR +Park and Ride => PR +caeser,cesar,chavez,39th +metro,portland +oregon,or +carshare,car2go,Zipcar,Flexcar,GetAround,ucarshare,uhaul,hertz,wecar,enterprise +ticket,fare,outlet,store,retail +dmv,motor,vehicles +court house => courthouse +court-house => courthouse +cc,court,courts,courth,courthouse +law,jail,prison,jail,courthouse,enforcement,juvenile,justice,juvenile,correctional +jewvi,juvi,juvenile + +first,1st +second,2nd +third,3rd +forth,4th +fifth,5th +sixth,6th +seventh,7th +eighth,8th +nineth,9th +tenth,10th +eleventh,11th +twelfth,12th +thirteenth,13th +fourteenth,14th +fifteenth,15th +sixteenth,16th +seventeenth,17th +eighteenth,18th +nineteenth,19th +twentyth,20th +twentyfirst,21st +twentysecond,22nd +twentythrid,23rd + +# USPS Suffix Abbreviations +# http://www.usps.com/ncsc/lookups/abbreviations.html#suffix +st,st.,street,str +ave,ave.,av,av.,avenue,AVNUE,AVENUE,AVENU +dr,drive,dr.,drv,driv,drives +BOULEVARD,BLVD,BOULEVARD,BOUL,BOULEVARD,BOULEVARD,BOULV +BRIDGE,BRDGE,BRG +BYPASS,BYP,BYPA,BYPAS,BYPS +CLIFF,CLF,CLIFFS,CLFS +CLUB,CLB +COMMON,CMN +CORNER,COR,CORNERS,CORS +CENTER,CEN,CENT,CENTER,CENTR,CENTRE,CNTER,CNTR,CTR,CENTERS,CTRS +CIR,CIRC,CIRCL,CIRCLE,CRCL,CIRCLE,CRCLE +COURT,CRT,CT,COURTS +CTSCK,CR,CREEK,CRK +CROSSING,CRSSING,CRSSNG,XING +CRECENT,CRES,CRESCENT,CRESENT,CRSCNT,CRSENT,CRSNT +EXP,EXPR,EXPRESS,EXPRESSWAY,EXPW,EXPY +FALL,FALLS,FLS +FERRY,FRRY,FRY +FIELD,FLD,FIELDS,FLDS +FREEWAY,FREEWY,FRWAY,FRWY,FWY +GARDEN,GARDN,GDN,GRDEN,GRDN,GARDENS,GDNS,GRDNS +GATEWAY,GATEWY,GATWAY,GTWAY,GTWY +GROV,GROVE,GRV,GROVES +HARB,HARBOR,HARBR,HBR,HRBOR,HARBORS +HEIGHT,HEIGHTS,HGTS,HT,HTS +HIGHWAY,HIGHWY,HIWAY,HIWY,HWAY,HWY +HILL,HL,HILLS,HLS +IS,ISLAND,ISLND,ISLANDS,ISLNDS,ISS,ISLE,ISLES +JCT,JCTION,JCTN,JUNCTION,JUNCTN,JUNCTON,JCTNS,JCTS,JUNCTIONS +LAKE,LK,LAKES,LKS +LANDING,LNDG,LNDNG +LA,LANE,LANES,LN +LOOP,LOOPS,LP +MANOR,MNR,MANORS,MNRS +MDW,MEADOW,MDWS,MEADOWS,MEDOWS +MILL,ML,MILLS,MLS +MNT,MOUNT,MT +MNTAIN,MNTN,MOUNTAIN,MOUNTIN,MTIN,MTN,MNTNS,MOUNTAINS +ORCH,ORCHARD,ORCHRD +PARK,PK,PRK,PARKS +PARKWAY,PARKWY,PKWAY,PKWY,PKY,PARKWAYS,PKWYS +PLAZA,PLZ,PLZA +PLACE,PL +PR,PRAIRIE,PRARIE,PRR +RANCH,RANCHES,RNCH,RNCHS +RDG,RDGE,RIDGE,RDGS,RIDGES +RIV,RIVER,RIVR,RVR +RD,ROAD,RDS,ROADS +RTESHLS,SHOALS +SHOAR,SHORE,SHR,SHOARS,SHORES,SHRS +SPG,SPNG,SPRING,SPRNG,SPGS,SPNGS,SPRINGS,SPRNGS +SQ,SQR,SQRE,SQU,SQUARE,SQRS,SQUARES +STA,STATION,STATN,STN +STREAM,STREME,STRM +ST,STR,STREET,STRT,STREETS +SMT,SUMIT,SUMITT,SUMMIT +TER,TERR,TERRACE +TR,TRAIL,TRAILS,TRL,TRLS +TUNEL,TUNL,TUNLS,TUNNEL,TUNNELS,TUNNL +UN,UNION,UNIONS +VALLEY,VALLY,VLLY,VLY,VALLEYS,VLYS +VDCT,VIA,VIADCT,VIADUCT +VIEW,VW,VIEWS,VWS +VILL,VILLAG,VILLAGE,VILLG,VILLIAGE,VLG,VILLAGES,VLGS +VILLE,VL +VIS,VIST,VISTA,VST,VSTA +WAY,WY,WAYS + +north, N +south, S +east, E +west, W +north west => northwest +north east => northeast +south west => southwest +south east => southeast +northwest, NW +northeast, NE +southwest, SW +southeast, SE + +broadway st => broadway +broadway street => broadway diff --git a/projects/texas/test_cases/libpostal_quirks.json b/projects/texas/test_cases/libpostal_quirks.json new file mode 100644 index 00000000..36f6a583 --- /dev/null +++ b/projects/texas/test_cases/libpostal_quirks.json @@ -0,0 +1,35 @@ +{ + "name": "/v1/search address", + "description": "addresses in Portland, OR", + "priorityThresh": 1, + "normalizers": { + "name": [ + "toUpperCase", + "removeOrdinals", + "stripPunctuation", + "abbreviateDirectionals", + "abbreviateStreetSuffixes" + ] + }, + "tests": [ + { + "id": 1, + "status": "pass", + "in": { + "text": "4004 SW Beaverton-Hillsdale, Portland" + }, + "issue": "https://github.com/OpenTransitTools/trimet-mod-pelias/issues/20", + "description": "libpostal does not handle street directionals in some cases", + "expected": { + "properties": [ + { + "name": "4004 SW Beaverton Hillsdale Hwy", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + } + ] +} diff --git a/projects/texas/test_cases/search_address.json b/projects/texas/test_cases/search_address.json new file mode 100644 index 00000000..0a6c2799 --- /dev/null +++ b/projects/texas/test_cases/search_address.json @@ -0,0 +1,8057 @@ +{ + "name": "/v1/search address", + "description": "addresses in Portland, OR", + "priorityThresh": 1, + "normalizers": { + "name": [ + "toUpperCase", + "removeOrdinals", + "stripPunctuation", + "abbreviateDirectionals", + "abbreviateStreetSuffixes" + ] + }, + "tests": [ + { + "id": 1, + "status": "pass", + "in": { + "text": "777 NE MLK Blvd, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "777 NE Martin Luther King Junior Blvd", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 2, + "status": "pass", + "in": { + "text": "777 NE MLK Blvd, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "777 NE Martin Luther King Junior Blvd", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 3, + "status": "pass", + "in": { + "text": "777 NE MLK Blvd Portland OR" + }, + "expected": { + "properties": [ + { + "name": "777 NE Martin Luther King Junior Blvd", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 4, + "status": "pass", + "in": { + "text": "777 NE MLK Blvd Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "777 NE Martin Luther King Junior Blvd", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 5, + "status": "pass", + "in": { + "text": "777 NE MLK Jr Blvd, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "777 NE Martin Luther King Junior Blvd", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 6, + "status": "pass", + "in": { + "text": "777 NE MLK Jr Blvd, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "777 NE Martin Luther King Junior Blvd", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 7, + "status": "pass", + "in": { + "text": "777 NE MLK Jr Blvd Portland OR" + }, + "expected": { + "properties": [ + { + "name": "777 NE Martin Luther King Junior Blvd", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 8, + "status": "pass", + "in": { + "text": "777 NE MLK Jr Blvd Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "777 NE Martin Luther King Junior Blvd", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 9, + "status": "pass", + "in": { + "text": "777 NE ML King Blvd, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "777 NE Martin Luther King Junior Blvd", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 10, + "status": "pass", + "in": { + "text": "777 NE ML King Blvd, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "777 NE Martin Luther King Junior Blvd", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 11, + "status": "pass", + "in": { + "text": "777 NE ML King Blvd Portland OR" + }, + "expected": { + "properties": [ + { + "name": "777 NE Martin Luther King Junior Blvd", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 12, + "status": "pass", + "in": { + "text": "777 NE ML King Blvd Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "777 NE Martin Luther King Junior Blvd", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 12.1, + "status": "pass", + "in": { + "text": "777 NE martin luther king Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "777 NE Martin Luther King Junior Blvd", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 13, + "status": "pass", + "in": { + "text": "4004 SW BH Hwy, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "4004 SW BEAVERTON HILLSDALE Hwy", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 14, + "status": "pass", + "in": { + "text": "4004 SW BH Hwy, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "4004 SW BEAVERTON HILLSDALE Hwy", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 15, + "status": "pass", + "in": { + "text": "4004 SW BH Hwy Portland OR" + }, + "expected": { + "properties": [ + { + "name": "4004 SW BEAVERTON HILLSDALE Hwy", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 16, + "status": "pass", + "in": { + "text": "4004 SW BH Hwy Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "4004 SW BEAVERTON HILLSDALE Hwy", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 17, + "status": "pass", + "in": { + "text": "4004 SW BHH, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "4004 SW BEAVERTON HILLSDALE HWY", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 18, + "status": "pass", + "in": { + "text": "4004 SW BHH, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "4004 SW BEAVERTON HILLSDALE HWY", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 19, + "status": "pass", + "in": { + "text": "4004 SW BHH Portland OR" + }, + "expected": { + "properties": [ + { + "name": "4004 SW BEAVERTON HILLSDALE HWY", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 20, + "status": "pass", + "in": { + "text": "4004 SW BHH Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "4004 SW BEAVERTON HILLSDALE HWY", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 21, + "status": "pass", + "in": { + "text": "4004 SW Beaverton-Hillsdale Hwy, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "4004 SW Beaverton Hillsdale Hwy", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 22, + "status": "pass", + "in": { + "text": "4004 SW Beaverton-Hillsdale Hwy, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "4004 SW BEAVERTON HILLSDALE Hwy", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 23, + "status": "pass", + "in": { + "text": "4004 SW Beaverton-Hillsdale Hwy Portland OR" + }, + "expected": { + "properties": [ + { + "name": "4004 SW BEAVERTON HILLSDALE Hwy", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 24, + "status": "pass", + "in": { + "text": "4004 SW Beaverton-Hillsdale Hwy Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "4004 SW BEAVERTON HILLSDALE Hwy", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 25, + "status": "pass", + "in": { + "text": "4004 SW Beaverton- Hillsdale Hwy, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "4004 SW Beaverton- Hillsdale Hwy", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 26, + "status": "pass", + "in": { + "text": "4004 SW Beaverton- Hillsdale Hwy, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "4004 SW Beaverton- Hillsdale Hwy", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 27, + "status": "pass", + "in": { + "text": "4004 SW Beaverton- Hillsdale Hwy Portland OR" + }, + "expected": { + "properties": [ + { + "name": "4004 SW Beaverton- Hillsdale Hwy", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 28, + "status": "pass", + "in": { + "text": "4004 SW Beaverton- Hillsdale Hwy Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "4004 SW Beaverton- Hillsdale Hwy", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 29, + "status": "pass", + "in": { + "text": "4004 SW Beaverton Hillsdale Hwy, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "4004 SW Beaverton Hillsdale Hwy", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 30, + "status": "pass", + "in": { + "text": "4004 SW Beaverton Hillsdale Hwy, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "4004 SW Beaverton Hillsdale Hwy", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 31, + "status": "pass", + "in": { + "text": "4004 SW Beaverton Hillsdale Hwy Portland OR" + }, + "expected": { + "properties": [ + { + "name": "4004 SW Beaverton Hillsdale Hwy", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 32, + "status": "pass", + "in": { + "text": "4004 SW Beaverton Hillsdale Hwy Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "4004 SW Beaverton Hillsdale Hwy", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 33, + "status": "pass", + "in": { + "text": "17175 SW TV Hwy, aloha, OR" + }, + "expected": { + "properties": [ + { + "name": "17175 SW TUALATIN VALLEY HIGHWAY", + "locality": "Aloha", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 34, + "status": "pass", + "in": { + "text": "17175 SW TV Hwy, aloha, Oregon" + }, + "expected": { + "properties": [ + { + "name": "17175 SW TUALATIN VALLEY HIGHWAY", + "locality": "Aloha", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 35, + "status": "pass", + "in": { + "text": "17175 SW TV Hwy aloha OR" + }, + "expected": { + "properties": [ + { + "name": "17175 SW TUALATIN VALLEY HIGHWAY", + "locality": "Aloha", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 36, + "status": "pass", + "in": { + "text": "17175 SW TV Hwy aloha Oregon" + }, + "expected": { + "properties": [ + { + "name": "17175 SW TUALATIN VALLEY HIGHWAY", + "locality": "Aloha", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 37, + "status": "pass", + "in": { + "text": "17175 SW TVH, aloha, OR" + }, + "expected": { + "properties": [ + { + "name": "17175 SW TUALATIN VALLEY HIGHWAY", + "locality": "Aloha", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 38, + "status": "pass", + "in": { + "text": "17175 SW TVH, aloha, Oregon" + }, + "expected": { + "properties": [ + { + "name": "17175 SW TUALATIN VALLEY HIGHWAY", + "locality": "Aloha", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 39, + "status": "pass", + "in": { + "text": "17175 SW TVH aloha OR" + }, + "expected": { + "properties": [ + { + "name": "17175 SW TUALATIN VALLEY HIGHWAY", + "locality": "Aloha", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 40, + "status": "pass", + "in": { + "text": "17175 SW TVH aloha Oregon" + }, + "expected": { + "properties": [ + { + "name": "17175 SW TUALATIN VALLEY HIGHWAY", + "locality": "Aloha", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 41, + "status": "pass", + "in": { + "text": "17175 SW TUALATIN VALLEY HWY, aloha, OR" + }, + "expected": { + "properties": [ + { + "name": "17175 SW TUALATIN VALLEY HIGHWAY", + "locality": "Aloha", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 42, + "status": "pass", + "in": { + "text": "17175 SW TUALATIN VALLEY HWY, aloha, Oregon" + }, + "expected": { + "properties": [ + { + "name": "17175 SW TUALATIN VALLEY HIGHWAY", + "locality": "Aloha", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 43, + "status": "pass", + "in": { + "text": "17175 SW TUALATIN VALLEY HWY aloha OR" + }, + "expected": { + "properties": [ + { + "name": "17175 SW TUALATIN VALLEY HIGHWAY", + "locality": "Aloha", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 44, + "status": "pass", + "in": { + "text": "17175 SW TUALATIN VALLEY HWY aloha Oregon" + }, + "expected": { + "properties": [ + { + "name": "17175 SW TUALATIN VALLEY HIGHWAY", + "locality": "Aloha", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 45, + "status": "pass", + "in": { + "text": "1800 SW 1ST AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "1800 SW 1ST AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 46, + "status": "pass", + "in": { + "text": "1800 SW 1ST AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "1800 SW 1ST AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 47, + "status": "pass", + "in": { + "text": "1800 SW 1ST AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "1800 SW 1ST AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 48, + "status": "pass", + "in": { + "text": "1800 SW 1ST AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "1800 SW 1ST AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 49, + "status": "pass", + "in": { + "text": "4134 N VANCOUVER AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "4134 N VANCOUVER AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 50, + "status": "pass", + "in": { + "text": "4134 N VANCOUVER AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "4134 N VANCOUVER AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 51, + "status": "pass", + "in": { + "text": "4134 N VANCOUVER AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "4134 N VANCOUVER AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 52, + "status": "pass", + "in": { + "text": "4134 N VANCOUVER AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "4134 N VANCOUVER AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 53, + "status": "pass", + "in": { + "text": "834 SE LAMBERT ST, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "834 SE LAMBERT ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 54, + "status": "pass", + "in": { + "text": "834 SE LAMBERT ST, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "834 SE LAMBERT ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 55, + "status": "pass", + "in": { + "text": "834 SE LAMBERT ST Portland OR" + }, + "expected": { + "properties": [ + { + "name": "834 SE LAMBERT ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 56, + "status": "pass", + "in": { + "text": "834 SE LAMBERT ST Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "834 SE LAMBERT ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 57, + "status": "pass", + "in": { + "text": "6146 SW 18th DR, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "6146 SW 18th DR", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 58, + "status": "pass", + "in": { + "text": "6146 SW 18th DR, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "6146 SW 18th DR", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 59, + "status": "pass", + "in": { + "text": "6146 SW 18th DR Portland OR" + }, + "expected": { + "properties": [ + { + "name": "6146 SW 18th DR", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 60, + "status": "pass", + "in": { + "text": "6146 SW 18th DR Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "6146 SW 18th DR", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 61, + "status": "pass", + "in": { + "text": "725 SW 10TH AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "725 SW 10TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 62, + "status": "pass", + "in": { + "text": "725 SW 10TH AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "725 SW 10TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 63, + "status": "pass", + "in": { + "text": "725 SW 10TH AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "725 SW 10TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 64, + "status": "pass", + "in": { + "text": "725 SW 10TH AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "725 SW 10TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 65, + "status": "fail", + "in": { + "text": "14587 SW DAUER CT, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "14587 SW DAUER CT", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 66, + "status": "fail", + "in": { + "text": "14587 SW DAUER CT, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "14587 SW DAUER CT", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 67, + "status": "fail", + "in": { + "text": "14587 SW DAUER CT Portland OR" + }, + "expected": { + "properties": [ + { + "name": "14587 SW DAUER CT", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 68, + "status": "fail", + "in": { + "text": "14587 SW DAUER CT Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "14587 SW DAUER CT", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 69, + "status": "pass", + "in": { + "text": "1800 SW 1ST AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "1800 SW 1ST AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 70, + "status": "pass", + "in": { + "text": "1800 SW 1ST AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "1800 SW 1ST AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 71, + "status": "pass", + "in": { + "text": "1800 SW 1ST AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "1800 SW 1ST AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 72, + "status": "pass", + "in": { + "text": "1800 SW 1ST AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "1800 SW 1ST AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 73, + "status": "pass", + "in": { + "text": "1400 SW 5TH AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "1400 SW 5TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 74, + "status": "pass", + "in": { + "text": "1400 SW 5TH AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "1400 SW 5TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 75, + "status": "pass", + "in": { + "text": "1400 SW 5TH AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "1400 SW 5TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 76, + "status": "pass", + "in": { + "text": "1400 SW 5TH AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "1400 SW 5TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 77, + "status": "pass", + "in": { + "text": "1000 SW BROADWAY, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "1000 SW BROADWAY", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 78, + "status": "pass", + "in": { + "text": "1000 SW BROADWAY, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "1000 SW BROADWAY", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 79, + "status": "pass", + "in": { + "text": "1000 SW BROADWAY Portland OR" + }, + "expected": { + "properties": [ + { + "name": "1000 SW BROADWAY", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 80, + "status": "pass", + "in": { + "text": "1000 SW BROADWAY Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "1000 SW BROADWAY", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 81, + "status": "pass", + "in": { + "text": "14715 E BURNSIDE ST, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "14715 E BURNSIDE ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 82, + "status": "pass", + "in": { + "text": "14715 E BURNSIDE ST, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "14715 E BURNSIDE ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 83, + "status": "pass", + "in": { + "text": "14715 E BURNSIDE ST Portland OR" + }, + "expected": { + "properties": [ + { + "name": "14715 E BURNSIDE ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 84, + "status": "pass", + "in": { + "text": "14715 E BURNSIDE ST Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "14715 E BURNSIDE ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 85, + "status": "pass", + "in": { + "text": "30 147TH AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "30 NE 147 AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 86, + "status": "pass", + "in": { + "text": "30 147TH AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "30 NE 147 AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 87, + "status": "pass", + "in": { + "text": "30 147TH AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "30 NE 147 AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 88, + "status": "pass", + "in": { + "text": "30 147TH AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "30 NE 147 AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 89, + "status": "pass", + "in": { + "text": "1220 SW 3RD AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "1220 SW 3RD AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 90, + "status": "pass", + "in": { + "text": "1220 SW 3RD AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "1220 SW 3RD AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 91, + "status": "pass", + "in": { + "text": "1220 SW 3RD AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "1220 SW 3RD AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 92, + "status": "pass", + "in": { + "text": "1220 SW 3RD AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "1220 SW 3RD AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 93, + "status": "pass", + "in": { + "text": "825 NE MULTNOMAH ST, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "825 NE MULTNOMAH ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 94, + "status": "pass", + "in": { + "text": "825 NE MULTNOMAH ST, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "825 NE MULTNOMAH ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 95, + "status": "pass", + "in": { + "text": "825 NE MULTNOMAH ST Portland OR" + }, + "expected": { + "properties": [ + { + "name": "825 NE MULTNOMAH ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 96, + "status": "pass", + "in": { + "text": "825 NE MULTNOMAH ST Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "825 NE MULTNOMAH ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 97, + "status": "pass", + "in": { + "text": "6236 SE 134TH AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "6236 SE 134TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 98, + "status": "pass", + "in": { + "text": "6236 SE 134TH AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "6236 SE 134TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 99, + "status": "pass", + "in": { + "text": "6236 SE 134TH AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "6236 SE 134TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 100, + "status": "pass", + "in": { + "text": "6236 SE 134TH AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "6236 SE 134TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 101, + "status": "pass", + "in": { + "text": "3334 SE 7TH AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "3334 SE 7TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 102, + "status": "pass", + "in": { + "text": "3334 SE 7TH AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "3334 SE 7TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 103, + "status": "pass", + "in": { + "text": "3334 SE 7TH AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "3334 SE 7TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 104, + "status": "pass", + "in": { + "text": "3334 SE 7TH AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "3334 SE 7TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 105, + "status": "pass", + "in": { + "text": "3625 N FARRAGUT ST, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "3625 N FARRAGUT ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 106, + "status": "pass", + "in": { + "text": "3625 N FARRAGUT ST, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "3625 N FARRAGUT ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 107, + "status": "pass", + "in": { + "text": "3625 N FARRAGUT ST Portland OR" + }, + "expected": { + "properties": [ + { + "name": "3625 N FARRAGUT ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 108, + "status": "pass", + "in": { + "text": "3625 N FARRAGUT ST Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "3625 N FARRAGUT ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 109, + "status": "pass", + "in": { + "text": "1606 NE 90TH AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "1606 NE 90TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 110, + "status": "pass", + "in": { + "text": "1606 NE 90TH AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "1606 NE 90TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 111, + "status": "pass", + "in": { + "text": "1606 NE 90TH AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "1606 NE 90TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 112, + "status": "pass", + "in": { + "text": "1606 NE 90TH AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "1606 NE 90TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 113, + "status": "pass", + "in": { + "text": "14359 SE POWELL BLVD, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "14359 SE POWELL BLVD", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 114, + "status": "pass", + "in": { + "text": "14359 SE POWELL BLVD, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "14359 SE POWELL BLVD", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 115, + "status": "pass", + "in": { + "text": "14359 SE POWELL BLVD Portland OR" + }, + "expected": { + "properties": [ + { + "name": "14359 SE POWELL BLVD", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 116, + "status": "pass", + "in": { + "text": "14359 SE POWELL BLVD Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "14359 SE POWELL BLVD", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 117, + "status": "fail", + "in": { + "text": "4015 N ALBINA ST, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "4015 N ALBINA ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 118, + "status": "fail", + "in": { + "text": "4015 N ALBINA ST, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "4015 N ALBINA ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 119, + "status": "fail", + "in": { + "text": "4015 N ALBINA ST Portland OR" + }, + "expected": { + "properties": [ + { + "name": "4015 N ALBINA ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 120, + "status": "fail", + "in": { + "text": "4015 N ALBINA ST Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "4015 N ALBINA ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 121, + "status": "pass", + "in": { + "text": "5661 SE HAROLD ST, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "5661 SE HAROLD ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 122, + "status": "pass", + "in": { + "text": "5661 SE HAROLD ST, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "5661 SE HAROLD ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 123, + "status": "pass", + "in": { + "text": "5661 SE HAROLD ST Portland OR" + }, + "expected": { + "properties": [ + { + "name": "5661 SE HAROLD ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 124, + "status": "pass", + "in": { + "text": "5661 SE HAROLD ST Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "5661 SE HAROLD ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 125, + "status": "pass", + "in": { + "text": "3689 SE FRANCIS ST, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "3689 SE FRANCIS ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 126, + "status": "pass", + "in": { + "text": "3689 SE FRANCIS ST, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "3689 SE FRANCIS ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 127, + "status": "pass", + "in": { + "text": "3689 SE FRANCIS ST Portland OR" + }, + "expected": { + "properties": [ + { + "name": "3689 SE FRANCIS ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 128, + "status": "pass", + "in": { + "text": "3689 SE FRANCIS ST Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "3689 SE FRANCIS ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 129, + "status": "pass", + "in": { + "text": "2522 SE CLINTON ST, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "2522 SE CLINTON ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 130, + "status": "pass", + "in": { + "text": "2522 SE CLINTON ST, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "2522 SE CLINTON ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 131, + "status": "pass", + "in": { + "text": "2522 SE CLINTON ST Portland OR" + }, + "expected": { + "properties": [ + { + "name": "2522 SE CLINTON ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 132, + "status": "pass", + "in": { + "text": "2522 SE CLINTON ST Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "2522 SE CLINTON ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 133, + "status": "pass", + "in": { + "text": "6834 SE POWELL BLVD, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "6834 SE POWELL BLVD", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 134, + "status": "pass", + "in": { + "text": "6834 SE POWELL BLVD, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "6834 SE POWELL BLVD", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 135, + "status": "pass", + "in": { + "text": "6834 SE POWELL BLVD Portland OR" + }, + "expected": { + "properties": [ + { + "name": "6834 SE POWELL BLVD", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 136, + "status": "pass", + "in": { + "text": "6834 SE POWELL BLVD Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "6834 SE POWELL BLVD", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 137, + "status": "pass", + "in": { + "text": "310 NE 55TH AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "310 NE 55TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 138, + "status": "pass", + "in": { + "text": "310 NE 55TH AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "310 NE 55TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 139, + "status": "pass", + "in": { + "text": "310 NE 55TH AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "310 NE 55TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 140, + "status": "pass", + "in": { + "text": "310 NE 55TH AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "310 NE 55TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 141, + "status": "pass", + "in": { + "text": "6021 SE 72ND AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "6021 SE 72ND AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 142, + "status": "pass", + "in": { + "text": "6021 SE 72ND AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "6021 SE 72ND AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 143, + "status": "pass", + "in": { + "text": "6021 SE 72ND AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "6021 SE 72ND AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 144, + "status": "pass", + "in": { + "text": "6021 SE 72ND AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "6021 SE 72ND AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 145, + "status": "pass", + "in": { + "text": "1721 NE 108TH, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "1721 NE 108TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 146, + "status": "pass", + "in": { + "text": "1721 NE 108TH, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "1721 NE 108TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 147, + "status": "pass", + "in": { + "text": "1721 NE 108TH Portland OR" + }, + "expected": { + "properties": [ + { + "name": "1721 NE 108TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 148, + "status": "pass", + "in": { + "text": "1721 NE 108TH Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "1721 NE 108TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 149, + "status": "pass", + "in": { + "text": "9352 N DWIGHT AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "9352 N DWIGHT AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 150, + "status": "pass", + "in": { + "text": "9352 N DWIGHT AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "9352 N DWIGHT AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 151, + "status": "pass", + "in": { + "text": "9352 N DWIGHT AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "9352 N DWIGHT AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 152, + "status": "pass", + "in": { + "text": "9352 N DWIGHT AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "9352 N DWIGHT AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 153, + "status": "pass", + "in": { + "text": "9348 N DWIGHT AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "9348 N DWIGHT AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 154, + "status": "pass", + "in": { + "text": "9348 N DWIGHT AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "9348 N DWIGHT AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 155, + "status": "pass", + "in": { + "text": "9348 N DWIGHT AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "9348 N DWIGHT AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 156, + "status": "pass", + "in": { + "text": "9348 N DWIGHT AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "9348 N DWIGHT AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 157, + "status": "pass", + "in": { + "text": "9344 N DWIGHT AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "9344 N DWIGHT AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 158, + "status": "pass", + "in": { + "text": "9344 N DWIGHT AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "9344 N DWIGHT AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 159, + "status": "pass", + "in": { + "text": "9344 N DWIGHT AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "9344 N DWIGHT AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 160, + "status": "pass", + "in": { + "text": "9344 N DWIGHT AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "9344 N DWIGHT AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 161, + "status": "pass", + "in": { + "text": "9340 N DWIGHT AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "9340 N DWIGHT AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 162, + "status": "pass", + "in": { + "text": "9340 N DWIGHT AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "9340 N DWIGHT AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 163, + "status": "pass", + "in": { + "text": "9340 N DWIGHT AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "9340 N DWIGHT AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 164, + "status": "pass", + "in": { + "text": "9340 N DWIGHT AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "9340 N DWIGHT AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 165, + "status": "pass", + "in": { + "text": "9336 N DWIGHT AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "9336 N DWIGHT AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 166, + "status": "pass", + "in": { + "text": "9336 N DWIGHT AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "9336 N DWIGHT AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 167, + "status": "pass", + "in": { + "text": "9336 N DWIGHT AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "9336 N DWIGHT AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 168, + "status": "pass", + "in": { + "text": "9336 N DWIGHT AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "9336 N DWIGHT AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 169, + "status": "pass", + "in": { + "text": "9332 N DWIGHT AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "9332 N DWIGHT AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 170, + "status": "pass", + "in": { + "text": "9332 N DWIGHT AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "9332 N DWIGHT AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 171, + "status": "pass", + "in": { + "text": "9332 N DWIGHT AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "9332 N DWIGHT AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 172, + "status": "pass", + "in": { + "text": "9332 N DWIGHT AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "9332 N DWIGHT AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 173, + "status": "pass", + "in": { + "text": "9649 N FISKE AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "9649 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 174, + "status": "pass", + "in": { + "text": "9649 N FISKE AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "9649 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 175, + "status": "pass", + "in": { + "text": "9649 N FISKE AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "9649 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 176, + "status": "pass", + "in": { + "text": "9649 N FISKE AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "9649 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 177, + "status": "pass", + "in": { + "text": "9645 N FISKE AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "9645 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 178, + "status": "pass", + "in": { + "text": "9645 N FISKE AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "9645 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 179, + "status": "pass", + "in": { + "text": "9645 N FISKE AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "9645 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 180, + "status": "pass", + "in": { + "text": "9645 N FISKE AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "9645 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 181, + "status": "pass", + "in": { + "text": "9641 N FISKE AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "9641 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 182, + "status": "pass", + "in": { + "text": "9641 N FISKE AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "9641 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 183, + "status": "pass", + "in": { + "text": "9641 N FISKE AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "9641 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 184, + "status": "pass", + "in": { + "text": "9641 N FISKE AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "9641 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 185, + "status": "pass", + "in": { + "text": "9637 N FISKE AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "9637 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 186, + "status": "pass", + "in": { + "text": "9637 N FISKE AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "9637 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 187, + "status": "pass", + "in": { + "text": "9637 N FISKE AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "9637 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 188, + "status": "pass", + "in": { + "text": "9637 N FISKE AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "9637 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 189, + "status": "pass", + "in": { + "text": "9117 N FISKE AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "9117 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 190, + "status": "pass", + "in": { + "text": "9117 N FISKE AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "9117 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 191, + "status": "pass", + "in": { + "text": "9117 N FISKE AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "9117 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 192, + "status": "pass", + "in": { + "text": "9117 N FISKE AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "9117 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 193, + "status": "pass", + "in": { + "text": "9129 N FISKE AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "9129 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 194, + "status": "pass", + "in": { + "text": "9129 N FISKE AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "9129 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 195, + "status": "pass", + "in": { + "text": "9129 N FISKE AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "9129 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 196, + "status": "pass", + "in": { + "text": "9129 N FISKE AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "9129 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 197, + "status": "pass", + "in": { + "text": "9125 N FISKE AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "9125 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 198, + "status": "pass", + "in": { + "text": "9125 N FISKE AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "9125 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 199, + "status": "pass", + "in": { + "text": "9125 N FISKE AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "9125 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 200, + "status": "pass", + "in": { + "text": "9125 N FISKE AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "9125 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 201, + "status": "pass", + "in": { + "text": "9121 N FISKE AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "9121 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 202, + "status": "pass", + "in": { + "text": "9121 N FISKE AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "9121 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 203, + "status": "pass", + "in": { + "text": "9121 N FISKE AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "9121 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 204, + "status": "pass", + "in": { + "text": "9121 N FISKE AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "9121 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 205, + "status": "pass", + "in": { + "text": "9133 N FISKE AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "9133 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 206, + "status": "pass", + "in": { + "text": "9133 N FISKE AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "9133 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 207, + "status": "pass", + "in": { + "text": "9133 N FISKE AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "9133 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 208, + "status": "pass", + "in": { + "text": "9133 N FISKE AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "9133 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 209, + "status": "pass", + "in": { + "text": "9325 N FISKE AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "9325 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 210, + "status": "pass", + "in": { + "text": "9325 N FISKE AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "9325 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 211, + "status": "pass", + "in": { + "text": "9325 N FISKE AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "9325 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 212, + "status": "pass", + "in": { + "text": "9325 N FISKE AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "9325 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 213, + "status": "pass", + "in": { + "text": "9305 N FISKE AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "9305 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 214, + "status": "pass", + "in": { + "text": "9305 N FISKE AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "9305 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 215, + "status": "pass", + "in": { + "text": "9305 N FISKE AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "9305 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 216, + "status": "pass", + "in": { + "text": "9305 N FISKE AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "9305 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 217, + "status": "pass", + "in": { + "text": "9309 N FISKE AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "9309 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 218, + "status": "pass", + "in": { + "text": "9309 N FISKE AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "9309 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 219, + "status": "pass", + "in": { + "text": "9309 N FISKE AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "9309 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 220, + "status": "pass", + "in": { + "text": "9309 N FISKE AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "9309 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 221, + "status": "pass", + "in": { + "text": "9313 N FISKE AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "9313 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 222, + "status": "pass", + "in": { + "text": "9313 N FISKE AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "9313 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 223, + "status": "pass", + "in": { + "text": "9313 N FISKE AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "9313 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 224, + "status": "pass", + "in": { + "text": "9313 N FISKE AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "9313 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 225, + "status": "pass", + "in": { + "text": "9321 N FISKE AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "9321 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 226, + "status": "pass", + "in": { + "text": "9321 N FISKE AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "9321 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 227, + "status": "pass", + "in": { + "text": "9321 N FISKE AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "9321 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 228, + "status": "pass", + "in": { + "text": "9321 N FISKE AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "9321 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 229, + "status": "pass", + "in": { + "text": "9341 N FISKE AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "9341 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 230, + "status": "pass", + "in": { + "text": "9341 N FISKE AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "9341 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 231, + "status": "pass", + "in": { + "text": "9341 N FISKE AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "9341 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 232, + "status": "pass", + "in": { + "text": "9341 N FISKE AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "9341 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 233, + "status": "pass", + "in": { + "text": "9337 N FISKE AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "9337 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 234, + "status": "pass", + "in": { + "text": "9337 N FISKE AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "9337 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 235, + "status": "pass", + "in": { + "text": "9337 N FISKE AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "9337 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 236, + "status": "pass", + "in": { + "text": "9337 N FISKE AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "9337 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 237, + "status": "pass", + "in": { + "text": "9333 N FISKE AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "9333 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 238, + "status": "pass", + "in": { + "text": "9333 N FISKE AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "9333 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 239, + "status": "pass", + "in": { + "text": "9333 N FISKE AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "9333 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 240, + "status": "pass", + "in": { + "text": "9333 N FISKE AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "9333 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 241, + "status": "pass", + "in": { + "text": "9349 N FISKE AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "9349 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 242, + "status": "pass", + "in": { + "text": "9349 N FISKE AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "9349 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 243, + "status": "pass", + "in": { + "text": "9349 N FISKE AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "9349 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 244, + "status": "pass", + "in": { + "text": "9349 N FISKE AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "9349 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 245, + "status": "pass", + "in": { + "text": "9345 N FISKE AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "9345 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 246, + "status": "pass", + "in": { + "text": "9345 N FISKE AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "9345 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 247, + "status": "pass", + "in": { + "text": "9345 N FISKE AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "9345 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 248, + "status": "pass", + "in": { + "text": "9345 N FISKE AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "9345 N FISKE AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 249, + "status": "pass", + "in": { + "text": "4902 N TRENTON ST, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "4902 N TRENTON ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 250, + "status": "pass", + "in": { + "text": "4902 N TRENTON ST, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "4902 N TRENTON ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 251, + "status": "pass", + "in": { + "text": "4902 N TRENTON ST Portland OR" + }, + "expected": { + "properties": [ + { + "name": "4902 N TRENTON ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 252, + "status": "pass", + "in": { + "text": "4902 N TRENTON ST Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "4902 N TRENTON ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 253, + "status": "pass", + "in": { + "text": "5330 NE GLISAN ST, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "5330 NE GLISAN ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 254, + "status": "pass", + "in": { + "text": "5330 NE GLISAN ST, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "5330 NE GLISAN ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 255, + "status": "pass", + "in": { + "text": "5330 NE GLISAN ST Portland OR" + }, + "expected": { + "properties": [ + { + "name": "5330 NE GLISAN ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 256, + "status": "pass", + "in": { + "text": "5330 NE GLISAN ST Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "5330 NE GLISAN ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 257, + "status": "pass", + "in": { + "text": "3268 NE EMERSON ST, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "3268 NE EMERSON ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 258, + "status": "pass", + "in": { + "text": "3268 NE EMERSON ST, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "3268 NE EMERSON ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 259, + "status": "pass", + "in": { + "text": "3268 NE EMERSON ST Portland OR" + }, + "expected": { + "properties": [ + { + "name": "3268 NE EMERSON ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 260, + "status": "pass", + "in": { + "text": "3268 NE EMERSON ST Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "3268 NE EMERSON ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 261, + "status": "fail", + "in": { + "text": "4105 SE INTERNATIONAL WAY, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "4105 SE INTERNATIONAL WAY", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 262, + "status": "fail", + "in": { + "text": "4105 SE INTERNATIONAL WAY, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "4105 SE INTERNATIONAL WAY", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 263, + "status": "fail", + "in": { + "text": "4105 SE INTERNATIONAL WAY Portland OR" + }, + "expected": { + "properties": [ + { + "name": "4105 SE INTERNATIONAL WAY", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 264, + "status": "fail", + "in": { + "text": "4105 SE INTERNATIONAL WAY Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "4105 SE INTERNATIONAL WAY", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 265, + "status": "pass", + "in": { + "text": "1508 SE 21ST AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "1508 SE 21ST AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 266, + "status": "pass", + "in": { + "text": "1508 SE 21ST AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "1508 SE 21ST AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 267, + "status": "pass", + "in": { + "text": "1508 SE 21ST AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "1508 SE 21ST AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 268, + "status": "pass", + "in": { + "text": "1508 SE 21ST AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "1508 SE 21ST AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 269, + "status": "pass", + "in": { + "text": "1322 SE WATER AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "1322 SE WATER AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 270, + "status": "pass", + "in": { + "text": "1322 SE WATER AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "1322 SE WATER AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 271, + "status": "pass", + "in": { + "text": "1322 SE WATER AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "1322 SE WATER AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 272, + "status": "pass", + "in": { + "text": "1322 SE WATER AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "1322 SE WATER AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 273, + "status": "pass", + "in": { + "text": "216 SE 103RD AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "216 SE 103RD AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 274, + "status": "pass", + "in": { + "text": "216 SE 103RD AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "216 SE 103RD AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 275, + "status": "pass", + "in": { + "text": "216 SE 103RD AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "216 SE 103RD AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 276, + "status": "pass", + "in": { + "text": "216 SE 103RD AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "216 SE 103RD AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 277, + "status": "pass", + "in": { + "text": "0841 SW GAINES ST, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "0841 SW GAINES ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 278, + "status": "pass", + "in": { + "text": "0841 SW GAINES ST, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "0841 SW GAINES ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 279, + "status": "pass", + "in": { + "text": "0841 SW GAINES ST Portland OR" + }, + "expected": { + "properties": [ + { + "name": "0841 SW GAINES ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 280, + "status": "pass", + "in": { + "text": "0841 SW GAINES ST Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "0841 SW GAINES ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 281, + "status": "pass", + "in": { + "text": "1231 NE BROADWAY ST, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "1231 NE BROADWAY", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 282, + "status": "pass", + "in": { + "text": "1231 NE BROADWAY ST, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "1231 NE BROADWAY", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 283, + "status": "pass", + "in": { + "text": "1231 NE BROADWAY ST Portland OR" + }, + "expected": { + "properties": [ + { + "name": "1231 NE BROADWAY", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 284, + "status": "pass", + "in": { + "text": "1231 NE BROADWAY ST Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "1231 NE BROADWAY", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 285, + "status": "pass", + "in": { + "text": "1523 SE 162ND AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "1523 SE 162ND AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 286, + "status": "pass", + "in": { + "text": "1523 SE 162ND AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "1523 SE 162ND AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 287, + "status": "pass", + "in": { + "text": "1523 SE 162ND AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "1523 SE 162ND AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 288, + "status": "pass", + "in": { + "text": "1523 SE 162ND AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "1523 SE 162ND AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 289, + "status": "pass", + "in": { + "text": "2243 SE DIVISION ST, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "2243 SE DIVISION ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 290, + "status": "pass", + "in": { + "text": "2243 SE DIVISION ST, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "2243 SE DIVISION ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 291, + "status": "pass", + "in": { + "text": "2243 SE DIVISION ST Portland OR" + }, + "expected": { + "properties": [ + { + "name": "2243 SE DIVISION ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 292, + "status": "pass", + "in": { + "text": "2243 SE DIVISION ST Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "2243 SE DIVISION ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 293, + "status": "fail", + "in": { + "text": "10955 SE JENNIFER ST, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "10955 SE JENNIFER ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 294, + "status": "fail", + "in": { + "text": "10955 SE JENNIFER ST, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "10955 SE JENNIFER ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 295, + "status": "fail", + "in": { + "text": "10955 SE JENNIFER ST Portland OR" + }, + "expected": { + "properties": [ + { + "name": "10955 SE JENNIFER ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 296, + "status": "fail", + "in": { + "text": "10955 SE JENNIFER ST Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "10955 SE JENNIFER ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 297, + "status": "pass", + "in": { + "text": "1739 NW COUCH ST, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "1739 NW COUCH ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 298, + "status": "pass", + "in": { + "text": "1739 NW COUCH ST, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "1739 NW COUCH ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 299, + "status": "pass", + "in": { + "text": "1739 NW COUCH ST Portland OR" + }, + "expected": { + "properties": [ + { + "name": "1739 NW COUCH ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 300, + "status": "pass", + "in": { + "text": "1739 NW COUCH ST Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "1739 NW COUCH ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 301, + "status": "pass", + "in": { + "text": "2716 SW BEAVERTON-HILLSDALE HWY, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "2716 SW BEAVERTON HILLSDALE HIGHWAY", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 302, + "status": "pass", + "in": { + "text": "2716 SW BEAVERTON-HILLSDALE HWY, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "2716 SW BEAVERTON HILLSDALE HIGHWAY", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 303, + "status": "pass", + "in": { + "text": "2716 SW BEAVERTON-HILLSDALE HWY Portland OR" + }, + "expected": { + "properties": [ + { + "name": "2716 SW BEAVERTON HILLSDALE HIGHWAY", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 304, + "status": "pass", + "in": { + "text": "2716 SW BEAVERTON-HILLSDALE HWY Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "2716 SW BEAVERTON HILLSDALE HIGHWAY", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 305, + "status": "pass", + "in": { + "text": "4701 SE 24TH AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "4701 SE 24TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 306, + "status": "pass", + "in": { + "text": "4701 SE 24TH AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "4701 SE 24TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 307, + "status": "pass", + "in": { + "text": "4701 SE 24TH AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "4701 SE 24TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 308, + "status": "pass", + "in": { + "text": "4701 SE 24TH AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "4701 SE 24TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 309, + "status": "pass", + "in": { + "text": "1130 NW 22ND AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "1130 NW 22ND AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 310, + "status": "pass", + "in": { + "text": "1130 NW 22ND AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "1130 NW 22ND AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 311, + "status": "pass", + "in": { + "text": "1130 NW 22ND AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "1130 NW 22ND AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 312, + "status": "pass", + "in": { + "text": "1130 NW 22ND AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "1130 NW 22ND AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 313, + "status": "pass", + "in": { + "text": "7368 SE DIVISION ST, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "7368 SE DIVISION ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 314, + "status": "pass", + "in": { + "text": "7368 SE DIVISION ST, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "7368 SE DIVISION ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 315, + "status": "pass", + "in": { + "text": "7368 SE DIVISION ST Portland OR" + }, + "expected": { + "properties": [ + { + "name": "7368 SE DIVISION ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 316, + "status": "pass", + "in": { + "text": "7368 SE DIVISION ST Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "7368 SE DIVISION ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 317, + "status": "fail", + "in": { + "text": "16317 SE 82ND DR, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "16317 SE 82ND DR", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 318, + "status": "fail", + "in": { + "text": "16317 SE 82ND DR, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "16317 SE 82ND DR", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 319, + "status": "fail", + "in": { + "text": "16317 SE 82ND DR Portland OR" + }, + "expected": { + "properties": [ + { + "name": "16317 SE 82ND DR", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 320, + "status": "fail", + "in": { + "text": "16317 SE 82ND DR Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "16317 SE 82ND DR", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 321, + "status": "fail", + "in": { + "text": "14255 SW 6TH ST, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "14255 SW 6TH ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 322, + "status": "fail", + "in": { + "text": "14255 SW 6TH ST, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "14255 SW 6TH ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 323, + "status": "fail", + "in": { + "text": "14255 SW 6TH ST Portland OR" + }, + "expected": { + "properties": [ + { + "name": "14255 SW 6TH ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 324, + "status": "fail", + "in": { + "text": "14255 SW 6TH ST Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "14255 SW 6TH ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 325, + "status": "pass", + "in": { + "text": "3421 SE SALMON ST, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "3421 SE SALMON ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 326, + "status": "pass", + "in": { + "text": "3421 SE SALMON ST, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "3421 SE SALMON ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 327, + "status": "pass", + "in": { + "text": "3421 SE SALMON ST Portland OR" + }, + "expected": { + "properties": [ + { + "name": "3421 SE SALMON ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 328, + "status": "pass", + "in": { + "text": "3421 SE SALMON ST Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "3421 SE SALMON ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 329, + "status": "fail", + "in": { + "text": "12133 SE 8OTH AVE MILWAUKIE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "12133 SE 8OTH AVE MILWAUKIE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 330, + "status": "fail", + "in": { + "text": "12133 SE 8OTH AVE MILWAUKIE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "12133 SE 8OTH AVE MILWAUKIE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 331, + "status": "fail", + "in": { + "text": "12133 SE 8OTH AVE MILWAUKIE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "12133 SE 8OTH AVE MILWAUKIE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 332, + "status": "fail", + "in": { + "text": "12133 SE 8OTH AVE MILWAUKIE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "12133 SE 8OTH AVE MILWAUKIE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 333, + "status": "pass", + "in": { + "text": "311 NW 12TH AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "311 NW 12TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 334, + "status": "pass", + "in": { + "text": "311 NW 12TH AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "311 NW 12TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 335, + "status": "pass", + "in": { + "text": "311 NW 12TH AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "311 NW 12TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 336, + "status": "pass", + "in": { + "text": "311 NW 12TH AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "311 NW 12TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 337, + "status": "pass", + "in": { + "text": "3480 NW INDUSTRIAL ST, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "3480 NW INDUSTRIAL ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 338, + "status": "pass", + "in": { + "text": "3480 NW INDUSTRIAL ST, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "3480 NW INDUSTRIAL ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 339, + "status": "pass", + "in": { + "text": "3480 NW INDUSTRIAL ST Portland OR" + }, + "expected": { + "properties": [ + { + "name": "3480 NW INDUSTRIAL ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 340, + "status": "pass", + "in": { + "text": "3480 NW INDUSTRIAL ST Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "3480 NW INDUSTRIAL ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 341, + "status": "pass", + "in": { + "text": "422 E BURNSIDE ST, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "422 E BURNSIDE ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 342, + "status": "pass", + "in": { + "text": "422 E BURNSIDE ST, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "422 E BURNSIDE ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 343, + "status": "pass", + "in": { + "text": "422 E BURNSIDE ST Portland OR" + }, + "expected": { + "properties": [ + { + "name": "422 E BURNSIDE ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 344, + "status": "pass", + "in": { + "text": "422 E BURNSIDE ST Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "422 E BURNSIDE ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 345, + "status": "pass", + "in": { + "text": "1917 SE TIBBETTS ST, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "1917 SE TIBBETTS ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 346, + "status": "pass", + "in": { + "text": "1917 SE TIBBETTS ST, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "1917 SE TIBBETTS ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 347, + "status": "pass", + "in": { + "text": "1917 SE TIBBETTS ST Portland OR" + }, + "expected": { + "properties": [ + { + "name": "1917 SE TIBBETTS ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 348, + "status": "pass", + "in": { + "text": "1917 SE TIBBETTS ST Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "1917 SE TIBBETTS ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 349, + "status": "pass", + "in": { + "text": "1915 SE TIBBETTS ST, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "1915 SE TIBBETTS ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 350, + "status": "pass", + "in": { + "text": "1915 SE TIBBETTS ST, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "1915 SE TIBBETTS ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 351, + "status": "pass", + "in": { + "text": "1915 SE TIBBETTS ST Portland OR" + }, + "expected": { + "properties": [ + { + "name": "1915 SE TIBBETTS ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 352, + "status": "pass", + "in": { + "text": "1915 SE TIBBETTS ST Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "1915 SE TIBBETTS ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 353, + "status": "pass", + "in": { + "text": "1913 SE TIBBETTS ST, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "1913 SE TIBBETTS ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 354, + "status": "pass", + "in": { + "text": "1913 SE TIBBETTS ST, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "1913 SE TIBBETTS ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 355, + "status": "pass", + "in": { + "text": "1913 SE TIBBETTS ST Portland OR" + }, + "expected": { + "properties": [ + { + "name": "1913 SE TIBBETTS ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 356, + "status": "pass", + "in": { + "text": "1913 SE TIBBETTS ST Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "1913 SE TIBBETTS ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 357, + "status": "pass", + "in": { + "text": "1911 SE TIBBETTS ST, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "1911 SE TIBBETTS ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 358, + "status": "pass", + "in": { + "text": "1911 SE TIBBETTS ST, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "1911 SE TIBBETTS ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 359, + "status": "pass", + "in": { + "text": "1911 SE TIBBETTS ST Portland OR" + }, + "expected": { + "properties": [ + { + "name": "1911 SE TIBBETTS ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 360, + "status": "pass", + "in": { + "text": "1911 SE TIBBETTS ST Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "1911 SE TIBBETTS ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 361, + "status": "pass", + "in": { + "text": "1909 SE TIBBETTS ST, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "1909 SE TIBBETTS ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 362, + "status": "pass", + "in": { + "text": "1909 SE TIBBETTS ST, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "1909 SE TIBBETTS ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 363, + "status": "pass", + "in": { + "text": "1909 SE TIBBETTS ST Portland OR" + }, + "expected": { + "properties": [ + { + "name": "1909 SE TIBBETTS ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 364, + "status": "pass", + "in": { + "text": "1909 SE TIBBETTS ST Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "1909 SE TIBBETTS ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 365, + "status": "pass", + "in": { + "text": "1907 SE TIBBETTS ST, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "1907 SE TIBBETTS ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 366, + "status": "pass", + "in": { + "text": "1907 SE TIBBETTS ST, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "1907 SE TIBBETTS ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 367, + "status": "pass", + "in": { + "text": "1907 SE TIBBETTS ST Portland OR" + }, + "expected": { + "properties": [ + { + "name": "1907 SE TIBBETTS ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 368, + "status": "pass", + "in": { + "text": "1907 SE TIBBETTS ST Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "1907 SE TIBBETTS ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 369, + "status": "pass", + "in": { + "text": "1905 SE TIBBETTS ST, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "1905 SE TIBBETTS ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 370, + "status": "pass", + "in": { + "text": "1905 SE TIBBETTS ST, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "1905 SE TIBBETTS ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 371, + "status": "pass", + "in": { + "text": "1905 SE TIBBETTS ST Portland OR" + }, + "expected": { + "properties": [ + { + "name": "1905 SE TIBBETTS ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 372, + "status": "pass", + "in": { + "text": "1905 SE TIBBETTS ST Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "1905 SE TIBBETTS ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 373, + "status": "pass", + "in": { + "text": "1903 SE TIBBETTS ST, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "1903 SE TIBBETTS ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 374, + "status": "pass", + "in": { + "text": "1903 SE TIBBETTS ST, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "1903 SE TIBBETTS ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 375, + "status": "pass", + "in": { + "text": "1903 SE TIBBETTS ST Portland OR" + }, + "expected": { + "properties": [ + { + "name": "1903 SE TIBBETTS ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 376, + "status": "pass", + "in": { + "text": "1903 SE TIBBETTS ST Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "1903 SE TIBBETTS ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 377, + "status": "pass", + "in": { + "text": "3083 SE 20TH AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "3083 SE 20TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 378, + "status": "pass", + "in": { + "text": "3083 SE 20TH AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "3083 SE 20TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 379, + "status": "pass", + "in": { + "text": "3083 SE 20TH AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "3083 SE 20TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 380, + "status": "pass", + "in": { + "text": "3083 SE 20TH AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "3083 SE 20TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 381, + "status": "pass", + "in": { + "text": "3075 SE 20TH AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "3075 SE 20TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 382, + "status": "pass", + "in": { + "text": "3075 SE 20TH AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "3075 SE 20TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 383, + "status": "pass", + "in": { + "text": "3075 SE 20TH AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "3075 SE 20TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 384, + "status": "pass", + "in": { + "text": "3075 SE 20TH AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "3075 SE 20TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 385, + "status": "fail", + "in": { + "text": "3073 SE 20TH AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "3073 SE 20TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 386, + "status": "fail", + "in": { + "text": "3073 SE 20TH AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "3073 SE 20TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 387, + "status": "fail", + "in": { + "text": "3073 SE 20TH AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "3073 SE 20TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 388, + "status": "fail", + "in": { + "text": "3073 SE 20TH AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "3073 SE 20TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 389, + "status": "pass", + "in": { + "text": "3035 SE 20TH AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "3035 SE 20TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 390, + "status": "pass", + "in": { + "text": "3035 SE 20TH AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "3035 SE 20TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 391, + "status": "pass", + "in": { + "text": "3035 SE 20TH AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "3035 SE 20TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 392, + "status": "pass", + "in": { + "text": "3035 SE 20TH AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "3035 SE 20TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 393, + "status": "pass", + "in": { + "text": "3033 SE 20TH AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "3033 SE 20TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 394, + "status": "pass", + "in": { + "text": "3033 SE 20TH AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "3033 SE 20TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 395, + "status": "pass", + "in": { + "text": "3033 SE 20TH AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "3033 SE 20TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 396, + "status": "pass", + "in": { + "text": "3033 SE 20TH AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "3033 SE 20TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 397, + "status": "pass", + "in": { + "text": "3031 SE 20TH AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "3031 SE 20TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 398, + "status": "pass", + "in": { + "text": "3031 SE 20TH AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "3031 SE 20TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 399, + "status": "pass", + "in": { + "text": "3031 SE 20TH AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "3031 SE 20TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 400, + "status": "pass", + "in": { + "text": "3031 SE 20TH AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "3031 SE 20TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 401, + "status": "pass", + "in": { + "text": "3027 SE 20TH AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "3027 SE 20TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 402, + "status": "pass", + "in": { + "text": "3027 SE 20TH AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "3027 SE 20TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 403, + "status": "pass", + "in": { + "text": "3027 SE 20TH AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "3027 SE 20TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 404, + "status": "pass", + "in": { + "text": "3027 SE 20TH AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "3027 SE 20TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 405, + "status": "pass", + "in": { + "text": "OREGON ZOO, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "OREGON ZOO", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 406, + "status": "pass", + "in": { + "text": "OREGON ZOO, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "OREGON ZOO", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 407, + "status": "fail", + "in": { + "text": "OREGON ZOO Portland OR" + }, + "expected": { + "properties": [ + { + "name": "OREGON ZOO", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 408, + "status": "fail", + "in": { + "text": "OREGON ZOO Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "OREGON ZOO", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 409, + "status": "fail", + "in": { + "text": "10647 SW RIVER DR, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "10647 SW RIVER DR", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 410, + "status": "fail", + "in": { + "text": "10647 SW RIVER DR, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "10647 SW RIVER DR", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 411, + "status": "fail", + "in": { + "text": "10647 SW RIVER DR Portland OR" + }, + "expected": { + "properties": [ + { + "name": "10647 SW RIVER DR", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 412, + "status": "fail", + "in": { + "text": "10647 SW RIVER DR Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "10647 SW RIVER DR", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 413, + "status": "pass", + "in": { + "text": "1831 SW RIVER DR, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "1831 SW RIVER DR", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 414, + "status": "pass", + "in": { + "text": "1831 SW RIVER DR, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "1831 SW RIVER DR", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 415, + "status": "pass", + "in": { + "text": "1831 SW RIVER DR Portland OR" + }, + "expected": { + "properties": [ + { + "name": "1831 SW RIVER DR", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 416, + "status": "pass", + "in": { + "text": "1831 SW RIVER DR Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "1831 SW RIVER DR", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 417, + "status": "pass", + "in": { + "text": "825 NE MULTNOMAH ST, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "825 NE MULTNOMAH ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 418, + "status": "pass", + "in": { + "text": "825 NE MULTNOMAH ST, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "825 NE MULTNOMAH ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 419, + "status": "pass", + "in": { + "text": "825 NE MULTNOMAH ST Portland OR" + }, + "expected": { + "properties": [ + { + "name": "825 NE MULTNOMAH ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 420, + "status": "pass", + "in": { + "text": "825 NE MULTNOMAH ST Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "825 NE MULTNOMAH ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 421, + "status": "pass", + "in": { + "text": "1220 SW 3RD AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "1220 SW 3RD AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 422, + "status": "pass", + "in": { + "text": "1220 SW 3RD AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "1220 SW 3RD AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 423, + "status": "pass", + "in": { + "text": "1220 SW 3RD AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "1220 SW 3RD AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 424, + "status": "pass", + "in": { + "text": "1220 SW 3RD AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "1220 SW 3RD AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 425, + "status": "pass", + "in": { + "text": "30 NE 147TH AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "30 NE 147TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 426, + "status": "pass", + "in": { + "text": "30 NE 147TH AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "30 NE 147TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 427, + "status": "pass", + "in": { + "text": "30 NE 147TH AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "30 NE 147TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 428, + "status": "pass", + "in": { + "text": "30 NE 147TH AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "30 NE 147TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 429, + "status": "pass", + "in": { + "text": "14715 E BURNSIDE ST, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "14715 E BURNSIDE ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 430, + "status": "pass", + "in": { + "text": "14715 E BURNSIDE ST, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "14715 E BURNSIDE ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 431, + "status": "pass", + "in": { + "text": "14715 E BURNSIDE ST Portland OR" + }, + "expected": { + "properties": [ + { + "name": "14715 E BURNSIDE ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 432, + "status": "pass", + "in": { + "text": "14715 E BURNSIDE ST Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "14715 E BURNSIDE ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 433, + "status": "pass", + "in": { + "text": "1000 SW BROADWAY ST, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "1000 SW BROADWAY", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 434, + "status": "pass", + "in": { + "text": "1000 SW BROADWAY ST, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "1000 SW BROADWAY", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 435, + "status": "pass", + "in": { + "text": "1000 SW BROADWAY ST Portland OR" + }, + "expected": { + "properties": [ + { + "name": "1000 SW BROADWAY", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 436, + "status": "pass", + "in": { + "text": "1000 SW BROADWAY ST Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "1000 SW BROADWAY", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 437, + "status": "pass", + "in": { + "text": "1400 SW 5TH AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "1400 SW 5TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 438, + "status": "pass", + "in": { + "text": "1400 SW 5TH AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "1400 SW 5TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 439, + "status": "pass", + "in": { + "text": "1400 SW 5TH AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "1400 SW 5TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 440, + "status": "pass", + "in": { + "text": "1400 SW 5TH AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "1400 SW 5TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 441, + "status": "pass", + "in": { + "text": "2211 SW 1ST AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "2211 SW 1ST AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 442, + "status": "pass", + "in": { + "text": "2211 SW 1ST AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "2211 SW 1ST AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 443, + "status": "pass", + "in": { + "text": "2211 SW 1ST AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "2211 SW 1ST AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 444, + "status": "pass", + "in": { + "text": "2211 SW 1ST AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "2211 SW 1ST AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 445, + "status": "pass", + "in": { + "text": "2221 SW 1ST AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "2221 SW 1ST AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 446, + "status": "pass", + "in": { + "text": "2221 SW 1ST AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "2221 SW 1ST AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 447, + "status": "pass", + "in": { + "text": "2221 SW 1ST AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "2221 SW 1ST AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 448, + "status": "pass", + "in": { + "text": "2221 SW 1ST AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "2221 SW 1ST AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 449, + "status": "pass", + "in": { + "text": "1600 SW 4TH AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "1600 SW 4TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 450, + "status": "pass", + "in": { + "text": "1600 SW 4TH AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "1600 SW 4TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 451, + "status": "pass", + "in": { + "text": "1600 SW 4TH AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "1600 SW 4TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 452, + "status": "pass", + "in": { + "text": "1600 SW 4TH AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "1600 SW 4TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 453, + "status": "pass", + "in": { + "text": "8205 SW 24TH AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "8205 SW 24TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 454, + "status": "pass", + "in": { + "text": "8205 SW 24TH AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "8205 SW 24TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 455, + "status": "pass", + "in": { + "text": "8205 SW 24TH AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "8205 SW 24TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 456, + "status": "pass", + "in": { + "text": "8205 SW 24TH AVE Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "8205 SW 24TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 457, + "status": "pass", + "in": { + "text": "537 SE ASH ST, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "537 SE ASH ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 458, + "status": "pass", + "in": { + "text": "537 SE ASH ST, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "537 SE ASH ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 459, + "status": "pass", + "in": { + "text": "537 SE ASH ST Portland OR" + }, + "expected": { + "properties": [ + { + "name": "537 SE ASH ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 460, + "status": "pass", + "in": { + "text": "537 SE ASH ST Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "537 SE ASH ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 461, + "status": "pass", + "in": { + "text": "524 E BURNSIDE ST, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "524 E BURNSIDE ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 462, + "status": "pass", + "in": { + "text": "524 E BURNSIDE ST, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "524 E BURNSIDE ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 463, + "status": "pass", + "in": { + "text": "524 E BURNSIDE ST Portland OR" + }, + "expected": { + "properties": [ + { + "name": "524 E BURNSIDE ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 464, + "status": "pass", + "in": { + "text": "524 E BURNSIDE ST Portland Oregon" + }, + "expected": { + "properties": [ + { + "name": "524 E BURNSIDE ST", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 465, + "status": "pass", + "in": { + "text": "309 SE 129TH AVE, Portland, OR" + }, + "expected": { + "properties": [ + { + "name": "309 SE 129TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 466, + "status": "pass", + "in": { + "text": "309 SE 129TH AVE, Portland, Oregon" + }, + "expected": { + "properties": [ + { + "name": "309 SE 129TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 467, + "status": "pass", + "in": { + "text": "309 SE 129TH AVE Portland OR" + }, + "expected": { + "properties": [ + { + "name": "309 SE 129TH AVE", + "locality": "Portland", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 468, + "status": "fail", + "in": { + "text": "309 SE 129TH AVE Oak Grove Oregon" + }, + "expected": { + "properties": [ + { + "name": "309 SE 129TH AVE", + "locality": "Oak Grove", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 469, + "status": "pass", + "in": { + "text": "2817 SE PARK AVE, Oak Grove, OR" + }, + "expected": { + "properties": [ + { + "name": "2817 SE PARK AVE", + "locality": "Oak Grove", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 470, + "status": "pass", + "in": { + "text": "2817 SE PARK AVE, Oak Grove, Oregon" + }, + "expected": { + "properties": [ + { + "name": "2817 SE PARK AVE", + "locality": "Oak Grove", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 471, + "status": "pass", + "in": { + "text": "2817 SE PARK AVE Oak Grove OR" + }, + "expected": { + "properties": [ + { + "name": "2817 SE PARK AVE", + "locality": "Oak Grove", + "region": "Oregon", + "region_a": "OR" + } + ] + } + }, + { + "id": 472, + "status": "pass", + "in": { + "text": "2817 SE PARK AVE Oak Grove Oregon" + }, + "expected": { + "properties": [ + { + "name": "2817 SE PARK AVE", + "locality": "Oak Grove", + "region": "Oregon", + "region_a": "OR" + } + ] + } + } + ] +} diff --git a/projects/texas/test_cases/search_venue.json b/projects/texas/test_cases/search_venue.json new file mode 100644 index 00000000..7ac2ba57 --- /dev/null +++ b/projects/texas/test_cases/search_venue.json @@ -0,0 +1,49 @@ +{ + "name": "/v1/search venues", + "priorityThresh": 1, + "endpoint": "search", + "tests": [ + { + "id": 1, + "status": "fail", + "notes": "portland international should come up for PDX", + "in": { + "text": "pdx" + }, + "expected": { + "properties": [ + { + "layer": "venue", + "name": "Portland International Airport", + "country_a": "USA", + "country": "United States", + "region": "Oregon", + "region_a": "OR", + "locality": "Portland" + } + ] + } + }, + { + "id": 2, + "status": "fail", + "notes": "portland international should come up for PDX", + "in": { + "text": "pdx airport" + }, + "expected": { + "properties": [ + { + "layer": "venue", + "name": "Portland International Airport", + "country_a": "USA", + "country": "United States", + "region": "Oregon", + "region_a": "OR", + "locality": "Portland" + } + ] + } + } + ] +} From 61d4c897ccb3c166eb47cd2a11825b5e6195c585 Mon Sep 17 00:00:00 2001 From: Julian Simioni Date: Thu, 4 Jun 2020 12:21:56 -0700 Subject: [PATCH 23/98] Fix some Texas project issues --- projects/texas/docker-compose.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/projects/texas/docker-compose.yml b/projects/texas/docker-compose.yml index 9c635d5a..7ee74862 100644 --- a/projects/texas/docker-compose.yml +++ b/projects/texas/docker-compose.yml @@ -10,7 +10,7 @@ services: restart: always ports: [ "4400:4400" ] schema: - image: pelias/schema:elasticsearch-5-schema + image: pelias/schema:master container_name: pelias_schema user: "${DOCKER_USER}" volumes: @@ -102,7 +102,7 @@ services: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" elasticsearch: - image: pelias/elasticsearch + image: pelias/elasticsearch:7.5.1 container_name: pelias_elasticsearch restart: always ports: [ "9200:9200", "9300:9300" ] From 0f16601f5d69427dcbcf07a7722fae3b1066ed13 Mon Sep 17 00:00:00 2001 From: Julian Simioni Date: Thu, 4 Jun 2020 13:36:15 -0700 Subject: [PATCH 24/98] Fix Elasticsearch user --- projects/texas/docker-compose.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/projects/texas/docker-compose.yml b/projects/texas/docker-compose.yml index 7ee74862..36aa5c14 100644 --- a/projects/texas/docker-compose.yml +++ b/projects/texas/docker-compose.yml @@ -104,6 +104,7 @@ services: elasticsearch: image: pelias/elasticsearch:7.5.1 container_name: pelias_elasticsearch + user: "${DOCKER_USER}" restart: always ports: [ "9200:9200", "9300:9300" ] volumes: From e9fb47bf77188801fd9bf33912893c52842b046a Mon Sep 17 00:00:00 2001 From: Julian Simioni Date: Thu, 4 Jun 2020 14:54:30 -0700 Subject: [PATCH 25/98] Copy docker-compose from portland project No meaningful changes, but now they are bit-for-bit identical --- projects/texas/docker-compose.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/projects/texas/docker-compose.yml b/projects/texas/docker-compose.yml index 36aa5c14..729f5026 100644 --- a/projects/texas/docker-compose.yml +++ b/projects/texas/docker-compose.yml @@ -59,21 +59,21 @@ services: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" - "./blacklist/:/data/blacklist" - csv-importer: - image: pelias/csv-importer:master - container_name: pelias_csv_importer + transit: + image: pelias/transit:master + container_name: pelias_transit user: "${DOCKER_USER}" volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" - - "./blacklist/:/data/blacklist" - transit: - image: pelias/transit:master - container_name: pelias_transit + csv-importer: + image: pelias/csv-importer:master + container_name: pelias_csv_importer user: "${DOCKER_USER}" volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" + - "./blacklist/:/data/blacklist" polylines: image: pelias/polylines:master container_name: pelias_polylines From 3024cfcfd2fd214f8054ae064408f4c3344ab67c Mon Sep 17 00:00:00 2001 From: Julian Simioni Date: Thu, 4 Jun 2020 14:55:58 -0700 Subject: [PATCH 26/98] Remove some out of date config options for Texas --- projects/texas/pelias.json | 3 --- 1 file changed, 3 deletions(-) diff --git a/projects/texas/pelias.json b/projects/texas/pelias.json index 06cc26be..2a7564e6 100644 --- a/projects/texas/pelias.json +++ b/projects/texas/pelias.json @@ -24,7 +24,6 @@ } }, "api": { - "textAnalyzer": "libpostal", "services": { "placeholder": { "url": "http://placeholder:4100" }, "pip": { "url": "http://pip:4200" }, @@ -201,8 +200,6 @@ }, "whosonfirst": { "datapath": "/data/whosonfirst", - "importVenues": false, - "importPostalcodes": true, "countryCode": "US", "importPlace": [ "85688753" From bb5acc57bb686ba1a5a0d7aa584077e44eaab40e Mon Sep 17 00:00:00 2001 From: Julian Simioni Date: Fri, 5 Jun 2020 12:27:19 -0700 Subject: [PATCH 27/98] Add farm/ranch to market synonyms --- projects/texas/synonyms/custom_name.txt | 3 +++ projects/texas/synonyms/custom_street.txt | 2 ++ 2 files changed, 5 insertions(+) diff --git a/projects/texas/synonyms/custom_name.txt b/projects/texas/synonyms/custom_name.txt index 38e0d35e..988f7229 100644 --- a/projects/texas/synonyms/custom_name.txt +++ b/projects/texas/synonyms/custom_name.txt @@ -1,4 +1,7 @@ +Ranch to market road,RM,ranch to market +Farm to market road,FM,farm to market + shopping,store,shop,retail,grocery,mall # Transit Centers diff --git a/projects/texas/synonyms/custom_street.txt b/projects/texas/synonyms/custom_street.txt index 32a4be71..ea43ac12 100644 --- a/projects/texas/synonyms/custom_street.txt +++ b/projects/texas/synonyms/custom_street.txt @@ -1,3 +1,5 @@ +Ranch to market road,RM,ranch to market +Farm to market road,FM,farm to market Tualatin Valley Hwy,TV Hwy,TVH,TVHWY Beaverton Hillsdale HWY,Beaverton-Hillsdale HWY,BH HYW,BHH From cd5ae42d285c078b542196ac0c3327d48ca195b7 Mon Sep 17 00:00:00 2001 From: Julian Simioni Date: Fri, 5 Jun 2020 12:39:20 -0700 Subject: [PATCH 28/98] Enable custom synonyms --- projects/texas/docker-compose.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/projects/texas/docker-compose.yml b/projects/texas/docker-compose.yml index 729f5026..967a9581 100644 --- a/projects/texas/docker-compose.yml +++ b/projects/texas/docker-compose.yml @@ -14,6 +14,8 @@ services: container_name: pelias_schema user: "${DOCKER_USER}" volumes: + - "./synonyms/custom_name.txt:/code/pelias/schema/synonyms/custom_name.txt" + - "./synonyms/custom_street.txt:/code/pelias/schema/synonyms/custom_street.txt" - "./pelias.json:/code/pelias.json" api: image: pelias/api:master From 3dfde03f892c3f6a2ad20a0aa20bd59329cb4428 Mon Sep 17 00:00:00 2001 From: Julian Simioni Date: Fri, 5 Jun 2020 13:50:17 -0700 Subject: [PATCH 29/98] Add new Texas OA data --- projects/texas/pelias.json | 171 +++++++++++++++++++++++++++++++++++++ 1 file changed, 171 insertions(+) diff --git a/projects/texas/pelias.json b/projects/texas/pelias.json index 2a7564e6..fb1ee605 100644 --- a/projects/texas/pelias.json +++ b/projects/texas/pelias.json @@ -58,16 +58,44 @@ "datapath": "/data/openaddresses", "files": [ "us/tx/anderson.csv", + "us/tx/andrews.csv", + "us/tx/angelina.csv", + "us/tx/aransas.csv", + "us/tx/archer.csv", + "us/tx/armstrong.csv", + "us/tx/atascosa.csv", "us/tx/austin.csv", + "us/tx/bailey.csv", "us/tx/bandera.csv", "us/tx/bastrop.csv", + "us/tx/baylor.csv", + "us/tx/bee.csv", + "us/tx/bell.csv", "us/tx/bexar.csv", + "us/tx/blanco.csv", + "us/tx/borden.csv", + "us/tx/bosque.csv", + "us/tx/bowie.csv", "us/tx/brazoria.csv", "us/tx/brazos.csv", + "us/tx/brewster.csv", + "us/tx/briscoe.csv", + "us/tx/brooks.csv", + "us/tx/brown.csv", "us/tx/burleson.csv", + "us/tx/burnet.csv", + "us/tx/caldwell.csv", + "us/tx/calhoun.csv", + "us/tx/callahan.csv", + "us/tx/cameron.csv", "us/tx/camp.csv", "us/tx/capcog.csv", "us/tx/carson.csv", + "us/tx/cass.csv", + "us/tx/castro.csv", + "us/tx/chambers.csv", + "us/tx/cherokee.csv", + "us/tx/childress.csv", "us/tx/city_of_abilene.csv", "us/tx/city_of_alvin.csv", "us/tx/city_of_amarillo.csv", @@ -102,95 +130,238 @@ "us/tx/city_of_university_park.csv", "us/tx/city_of_waco.csv", "us/tx/city_of_waxahachie.csv", + "us/tx/clay.csv", + "us/tx/cochran.csv", + "us/tx/coke.csv", + "us/tx/coleman.csv", "us/tx/colleyville.csv", "us/tx/collin.csv", + "us/tx/collingsworth.csv", "us/tx/colorado.csv", "us/tx/comal.csv", "us/tx/comanche.csv", + "us/tx/concho.csv", + "us/tx/cooke.csv", "us/tx/coryell.csv", + "us/tx/cottle.csv", + "us/tx/crane.csv", + "us/tx/crockett.csv", + "us/tx/crosby.csv", + "us/tx/culberson.csv", "us/tx/dallam.csv", "us/tx/dallas.csv", + "us/tx/dawson.csv", + "us/tx/deaf_smith.csv", "us/tx/delta.csv", "us/tx/denton.csv", "us/tx/desoto.csv", + "us/tx/dewitt.csv", + "us/tx/dickens.csv", "us/tx/dimmit.csv", + "us/tx/donley.csv", "us/tx/duval.csv", + "us/tx/eastland.csv", "us/tx/ector.csv", + "us/tx/edwards.csv", "us/tx/el_paso.csv", "us/tx/ellis.csv", + "us/tx/erath.csv", + "us/tx/falls.csv", "us/tx/fannin.csv", "us/tx/fayette.csv", "us/tx/fisher.csv", + "us/tx/floyd.csv", + "us/tx/foard.csv", + "us/tx/fort_bend.csv", + "us/tx/franklin.csv", "us/tx/freestone.csv", + "us/tx/frio.csv", "us/tx/gaines.csv", "us/tx/galveston.csv", + "us/tx/garza.csv", "us/tx/gillespie.csv", + "us/tx/glasscock.csv", + "us/tx/goliad.csv", + "us/tx/gonzales.csv", "us/tx/gray.csv", + "us/tx/grayson.csv", "us/tx/greater_houston.csv", + "us/tx/gregg.csv", "us/tx/grimes.csv", "us/tx/guadalupe.csv", + "us/tx/hale.csv", + "us/tx/hall.csv", + "us/tx/hamilton.csv", "us/tx/hansford.csv", + "us/tx/hardeman.csv", + "us/tx/hardin.csv", + "us/tx/harris.csv", + "us/tx/harrison.csv", "us/tx/hartley.csv", + "us/tx/haskell.csv", "us/tx/hays.csv", + "us/tx/hemphill.csv", + "us/tx/henderson.csv", + "us/tx/hidalgo.csv", "us/tx/hidalgo_county.csv", + "us/tx/hill.csv", + "us/tx/hockley.csv", "us/tx/hood.csv", + "us/tx/hopkins.csv", "us/tx/houston.csv", "us/tx/howard.csv", + "us/tx/hudspeth.csv", "us/tx/hunt.csv", + "us/tx/hutchinson.csv", + "us/tx/irion.csv", + "us/tx/jack.csv", + "us/tx/jackson.csv", + "us/tx/jasper.csv", + "us/tx/jeff_davis.csv", + "us/tx/jefferson.csv", + "us/tx/jim_hogg.csv", + "us/tx/jim_wells.csv", "us/tx/johnson.csv", + "us/tx/jones.csv", + "us/tx/karnes.csv", "us/tx/kaufman.csv", "us/tx/keller.csv", "us/tx/kendall.csv", + "us/tx/kenedy.csv", + "us/tx/kent.csv", "us/tx/kerr.csv", + "us/tx/kimble.csv", + "us/tx/king.csv", + "us/tx/kinney.csv", + "us/tx/kleberg.csv", + "us/tx/knox.csv", + "us/tx/la_salle.csv", "us/tx/lamar.csv", + "us/tx/lamb.csv", + "us/tx/lampasas.csv", "us/tx/lasalle.csv", + "us/tx/lavaca.csv", "us/tx/lee.csv", + "us/tx/leon.csv", + "us/tx/liberty.csv", "us/tx/libery.csv", + "us/tx/limestone.csv", + "us/tx/lipscomb.csv", + "us/tx/live_oak.csv", "us/tx/liveoak.csv", "us/tx/llano.csv", + "us/tx/loving.csv", "us/tx/lubbock.csv", + "us/tx/lynn.csv", "us/tx/madison.csv", "us/tx/marion.csv", + "us/tx/martin.csv", + "us/tx/mason.csv", + "us/tx/matagorda.csv", "us/tx/maverick.csv", "us/tx/mcculloch.csv", + "us/tx/mclennan.csv", "us/tx/mcmullen.csv", "us/tx/medina.csv", + "us/tx/menard.csv", "us/tx/midland.csv", "us/tx/milam.csv", "us/tx/mills.csv", + "us/tx/mitchell.csv", + "us/tx/montague.csv", "us/tx/montgomery.csv", "us/tx/moore.csv", + "us/tx/morris.csv", + "us/tx/motley.csv", "us/tx/nacogdoches.csv", + "us/tx/navarro.csv", "us/tx/new_braunfels.csv", + "us/tx/newton.csv", "us/tx/nolan.csv", "us/tx/north_richland_hills.csv", + "us/tx/nueces.csv", "us/tx/ochiltree.csv", + "us/tx/oldham.csv", "us/tx/orange.csv", + "us/tx/palo_pinto.csv", + "us/tx/panola.csv", + "us/tx/parker.csv", "us/tx/parmer.csv", + "us/tx/pecos.csv", "us/tx/plano.csv", + "us/tx/polk.csv", + "us/tx/potter.csv", + "us/tx/presidio.csv", "us/tx/rains.csv", + "us/tx/randall.csv", + "us/tx/reagan.csv", + "us/tx/real.csv", + "us/tx/red_river.csv", "us/tx/reeves.csv", + "us/tx/refugio.csv", + "us/tx/roberts.csv", + "us/tx/robertson.csv", "us/tx/rockwall.csv", "us/tx/round_rock.csv", "us/tx/runnels.csv", + "us/tx/rusk.csv", + "us/tx/sabine.csv", "us/tx/san_antonio.csv", + "us/tx/san_augustine.csv", + "us/tx/san_jacinto.csv", + "us/tx/san_patricio.csv", + "us/tx/san_saba.csv", "us/tx/schleicher.csv", + "us/tx/scurry.csv", "us/tx/shackelford.csv", + "us/tx/shelby.csv", + "us/tx/sherman.csv", + "us/tx/smith.csv", + "us/tx/starr.csv", "us/tx/statewide-partial.csv", + "us/tx/stephens.csv", + "us/tx/sterling.csv", + "us/tx/stonewall.csv", + "us/tx/sutton.csv", + "us/tx/swisher.csv", "us/tx/tarrant-county.csv", + "us/tx/tarrant.csv", + "us/tx/taylor.csv", + "us/tx/terrell.csv", + "us/tx/terry.csv", "us/tx/texoma-counties.csv", + "us/tx/throckmorton.csv", "us/tx/titus.csv", + "us/tx/tom_green.csv", + "us/tx/travis.csv", "us/tx/trinity.csv", + "us/tx/tyler.csv", + "us/tx/upshur.csv", + "us/tx/upton.csv", "us/tx/uvalde.csv", + "us/tx/val_verde.csv", + "us/tx/van_zandt.csv", "us/tx/vanzandt.csv", + "us/tx/victoria.csv", "us/tx/waco.csv", "us/tx/walker.csv", + "us/tx/waller.csv", + "us/tx/ward.csv", "us/tx/washington.csv", + "us/tx/webb.csv", "us/tx/wharton.csv", + "us/tx/wheeler.csv", + "us/tx/wichita.csv", + "us/tx/wilbarger.csv", + "us/tx/willacy.csv", "us/tx/williamson.csv", "us/tx/wilson.csv", + "us/tx/winkler.csv", + "us/tx/wise.csv", "us/tx/wood.csv", + "us/tx/yoakum.csv", "us/tx/young.csv", + "us/tx/zapata.csv", "us/tx/zavala.csv" ] }, From 01818fcd857d464c9d42c165259cd5523b565cd2 Mon Sep 17 00:00:00 2001 From: Mauricio Maia Date: Mon, 15 Jun 2020 14:24:09 -0300 Subject: [PATCH 30/98] fix(pelias.json): remove explicit whosonfirst.importVenues from projects --- projects/los-angeles-metro/pelias.json | 1 - projects/portland-metro/pelias.json | 1 - 2 files changed, 2 deletions(-) diff --git a/projects/los-angeles-metro/pelias.json b/projects/los-angeles-metro/pelias.json index 463a58bf..edca34b8 100644 --- a/projects/los-angeles-metro/pelias.json +++ b/projects/los-angeles-metro/pelias.json @@ -65,7 +65,6 @@ }, "whosonfirst": { "datapath": "/data/whosonfirst", - "importVenues": false, "importPostalcodes": true, "countryCode": "US", "importPlace": [ diff --git a/projects/portland-metro/pelias.json b/projects/portland-metro/pelias.json index 5482879c..52358f05 100644 --- a/projects/portland-metro/pelias.json +++ b/projects/portland-metro/pelias.json @@ -83,7 +83,6 @@ }, "whosonfirst": { "datapath": "/data/whosonfirst", - "importVenues": false, "importPostalcodes": true, "countryCode": "US", "importPlace": [ From 865fb22361f6d58cdd776b371cab5452a38855fa Mon Sep 17 00:00:00 2001 From: Julian Simioni Date: Tue, 23 Jun 2020 09:49:35 -0700 Subject: [PATCH 31/98] Add empty CSV section to NA project --- projects/north-america/pelias.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/projects/north-america/pelias.json b/projects/north-america/pelias.json index 6c059b8e..787ebf34 100644 --- a/projects/north-america/pelias.json +++ b/projects/north-america/pelias.json @@ -35,6 +35,12 @@ "adminLookup": { "enabled": true }, + "csv": { + "datapath": "/data/csv", + "files": [], + "download": [ + ] + }, "geonames": { "datapath": "/data/geonames", "countryCode": "US" From 627ddaba21d0163036570ee0576cf45c9c1d5ce6 Mon Sep 17 00:00:00 2001 From: Julian Simioni Date: Mon, 29 Jun 2020 09:37:59 -0700 Subject: [PATCH 32/98] Update expectations for portland acceptance tests Most of the test failures have been around for a while, and they actually correspond to tests for cases that Pelias can't currently handle, such as wildly incorrect street names or city names. Fixes https://github.com/pelias/docker/issues/204 --- .../test_cases/search_address.json | 88 +++++++++++-------- .../test_cases/search_venue.json | 2 +- 2 files changed, 51 insertions(+), 39 deletions(-) diff --git a/projects/portland-metro/test_cases/search_address.json b/projects/portland-metro/test_cases/search_address.json index 0a6c2799..cf2a7526 100644 --- a/projects/portland-metro/test_cases/search_address.json +++ b/projects/portland-metro/test_cases/search_address.json @@ -14,7 +14,7 @@ "tests": [ { "id": 1, - "status": "pass", + "status": "fail", "in": { "text": "777 NE MLK Blvd, Portland, OR" }, @@ -31,7 +31,7 @@ }, { "id": 2, - "status": "pass", + "status": "fail", "in": { "text": "777 NE MLK Blvd, Portland, Oregon" }, @@ -48,7 +48,7 @@ }, { "id": 3, - "status": "pass", + "status": "fail", "in": { "text": "777 NE MLK Blvd Portland OR" }, @@ -65,7 +65,7 @@ }, { "id": 4, - "status": "pass", + "status": "fail", "in": { "text": "777 NE MLK Blvd Portland Oregon" }, @@ -82,7 +82,7 @@ }, { "id": 5, - "status": "pass", + "status": "fail", "in": { "text": "777 NE MLK Jr Blvd, Portland, OR" }, @@ -99,7 +99,7 @@ }, { "id": 6, - "status": "pass", + "status": "fail", "in": { "text": "777 NE MLK Jr Blvd, Portland, Oregon" }, @@ -116,7 +116,7 @@ }, { "id": 7, - "status": "pass", + "status": "fail", "in": { "text": "777 NE MLK Jr Blvd Portland OR" }, @@ -133,7 +133,7 @@ }, { "id": 8, - "status": "pass", + "status": "fail", "in": { "text": "777 NE MLK Jr Blvd Portland Oregon" }, @@ -150,7 +150,7 @@ }, { "id": 9, - "status": "pass", + "status": "fail", "in": { "text": "777 NE ML King Blvd, Portland, OR" }, @@ -167,7 +167,7 @@ }, { "id": 10, - "status": "pass", + "status": "fail", "in": { "text": "777 NE ML King Blvd, Portland, Oregon" }, @@ -184,7 +184,7 @@ }, { "id": 11, - "status": "pass", + "status": "fail", "in": { "text": "777 NE ML King Blvd Portland OR" }, @@ -201,7 +201,7 @@ }, { "id": 12, - "status": "pass", + "status": "fail", "in": { "text": "777 NE ML King Blvd Portland Oregon" }, @@ -235,7 +235,7 @@ }, { "id": 13, - "status": "pass", + "status": "fail", "in": { "text": "4004 SW BH Hwy, Portland, OR" }, @@ -252,7 +252,7 @@ }, { "id": 14, - "status": "pass", + "status": "fail", "in": { "text": "4004 SW BH Hwy, Portland, Oregon" }, @@ -269,7 +269,7 @@ }, { "id": 15, - "status": "pass", + "status": "fail", "in": { "text": "4004 SW BH Hwy Portland OR" }, @@ -286,7 +286,7 @@ }, { "id": 16, - "status": "pass", + "status": "fail", "in": { "text": "4004 SW BH Hwy Portland Oregon" }, @@ -303,7 +303,7 @@ }, { "id": 17, - "status": "pass", + "status": "fail", "in": { "text": "4004 SW BHH, Portland, OR" }, @@ -320,7 +320,7 @@ }, { "id": 18, - "status": "pass", + "status": "fail", "in": { "text": "4004 SW BHH, Portland, Oregon" }, @@ -337,7 +337,7 @@ }, { "id": 19, - "status": "pass", + "status": "fail", "in": { "text": "4004 SW BHH Portland OR" }, @@ -354,7 +354,7 @@ }, { "id": 20, - "status": "pass", + "status": "fail", "in": { "text": "4004 SW BHH Portland Oregon" }, @@ -575,7 +575,8 @@ }, { "id": 33, - "status": "pass", + "status": "fail", + "description": "address is in beaverton", "in": { "text": "17175 SW TV Hwy, aloha, OR" }, @@ -592,7 +593,8 @@ }, { "id": 34, - "status": "pass", + "status": "fail", + "description": "address is in beaverton", "in": { "text": "17175 SW TV Hwy, aloha, Oregon" }, @@ -609,7 +611,8 @@ }, { "id": 35, - "status": "pass", + "status": "fail", + "description": "address is in beaverton", "in": { "text": "17175 SW TV Hwy aloha OR" }, @@ -626,7 +629,8 @@ }, { "id": 36, - "status": "pass", + "status": "fail", + "description": "address is in beaverton", "in": { "text": "17175 SW TV Hwy aloha Oregon" }, @@ -643,7 +647,8 @@ }, { "id": 37, - "status": "pass", + "status": "fail", + "description": "address is in beaverton", "in": { "text": "17175 SW TVH, aloha, OR" }, @@ -660,7 +665,8 @@ }, { "id": 38, - "status": "pass", + "status": "fail", + "description": "address is in beaverton", "in": { "text": "17175 SW TVH, aloha, Oregon" }, @@ -677,7 +683,8 @@ }, { "id": 39, - "status": "pass", + "status": "fail", + "description": "address is in beaverton", "in": { "text": "17175 SW TVH aloha OR" }, @@ -694,7 +701,8 @@ }, { "id": 40, - "status": "pass", + "status": "fail", + "description": "address is in beaverton", "in": { "text": "17175 SW TVH aloha Oregon" }, @@ -4791,7 +4799,8 @@ }, { "id": 281, - "status": "pass", + "status": "fail", + "description": "there is no NE Broadway St, road name is SE Broadway", "in": { "text": "1231 NE BROADWAY ST, Portland, OR" }, @@ -4808,7 +4817,8 @@ }, { "id": 282, - "status": "pass", + "status": "fail", + "description": "there is no NE Broadway St, road name is SE Broadway", "in": { "text": "1231 NE BROADWAY ST, Portland, Oregon" }, @@ -4825,7 +4835,8 @@ }, { "id": 283, - "status": "pass", + "status": "fail", + "description": "there is no NE Broadway St, road name is SE Broadway", "in": { "text": "1231 NE BROADWAY ST Portland OR" }, @@ -4842,7 +4853,8 @@ }, { "id": 284, - "status": "pass", + "status": "fail", + "description": "there is no NE Broadway St, road name is SE Broadway", "in": { "text": "1231 NE BROADWAY ST Portland Oregon" }, @@ -6933,7 +6945,7 @@ }, { "id": 407, - "status": "fail", + "status": "pass", "in": { "text": "OREGON ZOO Portland OR" }, @@ -6950,7 +6962,7 @@ }, { "id": 408, - "status": "fail", + "status": "pass", "in": { "text": "OREGON ZOO Portland Oregon" }, @@ -7375,7 +7387,7 @@ }, { "id": 433, - "status": "pass", + "status": "fail", "in": { "text": "1000 SW BROADWAY ST, Portland, OR" }, @@ -7392,7 +7404,7 @@ }, { "id": 434, - "status": "pass", + "status": "fail", "in": { "text": "1000 SW BROADWAY ST, Portland, Oregon" }, @@ -7409,7 +7421,7 @@ }, { "id": 435, - "status": "pass", + "status": "fail", "in": { "text": "1000 SW BROADWAY ST Portland OR" }, @@ -7426,7 +7438,7 @@ }, { "id": 436, - "status": "pass", + "status": "fail", "in": { "text": "1000 SW BROADWAY ST Portland Oregon" }, diff --git a/projects/portland-metro/test_cases/search_venue.json b/projects/portland-metro/test_cases/search_venue.json index 7ac2ba57..7d5d3f43 100644 --- a/projects/portland-metro/test_cases/search_venue.json +++ b/projects/portland-metro/test_cases/search_venue.json @@ -26,7 +26,7 @@ }, { "id": 2, - "status": "fail", + "status": "pass", "notes": "portland international should come up for PDX", "in": { "text": "pdx airport" From 01e872cde2e7b49d85e771764648f5b5d7217988 Mon Sep 17 00:00:00 2001 From: David Blackman Date: Thu, 16 Jul 2020 10:47:39 -0400 Subject: [PATCH 33/98] fix countryCode to be US in nyc build --- projects/new-york-city/pelias.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/new-york-city/pelias.json b/projects/new-york-city/pelias.json index c39c880a..0ac7edba 100644 --- a/projects/new-york-city/pelias.json +++ b/projects/new-york-city/pelias.json @@ -71,7 +71,7 @@ "whosonfirst": { "datapath": "/data/whosonfirst", "importPostalcodes": true, - "countryCode": "NY", + "countryCode": "US", "importPlace": [ "85977539" ] From da2291fa703c9381948e5cfabb5a3a21d1054ef5 Mon Sep 17 00:00:00 2001 From: Adriano Date: Mon, 27 Jul 2020 22:01:35 -0600 Subject: [PATCH 34/98] Update README.md Document linux dependencies --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 07db8fe8..26bebaad 100644 --- a/README.md +++ b/README.md @@ -40,6 +40,11 @@ You will need to have a [modern version of `docker`](https://docs.docker.com/eng This project supports Linux and Mac OSX operatings systems. Windows is currently [not supported](https://github.com/pelias/docker/issues/124). +## Requirements for Linux +- Install `util-linux` using your distribution's package manager + - Alpine Linux: `sudo apk add util-linux` + - Debian/Ubuntu: `sudo apt-get install util-linux` + ## Requirements for Mac OSX - install GNU coreutils with [Homebrew](https://brew.sh/): `brew install coreutils`. - Max-out Docker computing resources( `Memory-RAM and CPUs-Cores` ) dedicated to Docker in `Docker > Preferences > Advanced`. From dc53b188d406d75d82b90f8bbc764a276c129a77 Mon Sep 17 00:00:00 2001 From: Julian Simioni Date: Tue, 15 Sep 2020 12:09:25 -0400 Subject: [PATCH 35/98] Add 'How long will it take?' docs section Closes https://github.com/pelias/docker/issues/160 --- README.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/README.md b/README.md index 26bebaad..17c9694b 100644 --- a/README.md +++ b/README.md @@ -55,6 +55,18 @@ Scripts can easily download tens of GB of geographic data, so ensure you have en At least 8GB RAM is required. +## How long will it take? + +You should be able to get started with the default Portland-metro area build in under an hour with a fast internet connection. + +On a machine with ~32 CPU cores, a full planet build can be done in under a day with the right settings. + +The interpolation build (`pelias prepare interpolation`), which is [single threaded](https://github.com/pelias/interpolation/issues/264) will take 6+ days +for the full planet. We generally recommend skipping it when you are first +getting started. + +For more info on time estimates and hardware requirements for large build see our [full planet considerations](https://github.com/pelias/documentation/blob/master/full_planet_considerations.md) documentation. + ## Quickstart build script The following shell script can be used to quickly get started with a Pelias build. From 9d3350065d551b091970af8b0e96a3619a4c2f57 Mon Sep 17 00:00:00 2001 From: Julian Simioni Date: Tue, 15 Sep 2020 12:27:18 -0400 Subject: [PATCH 36/98] Use latest acceptance-tests --- projects/planet/acceptance-tests | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/planet/acceptance-tests b/projects/planet/acceptance-tests index bddd71ac..1cdcb109 160000 --- a/projects/planet/acceptance-tests +++ b/projects/planet/acceptance-tests @@ -1 +1 @@ -Subproject commit bddd71ac6bd45a34fd326625d890716d45c16364 +Subproject commit 1cdcb109978485736b5a7f4318d5403994763af1 From b6d2e533868934a3c837dc93e4478009fb9f02e1 Mon Sep 17 00:00:00 2001 From: Julian Simioni Date: Tue, 15 Sep 2020 13:57:28 -0400 Subject: [PATCH 37/98] Clarify that `ln` command may require sudo While other `pelias` commands should not be run with `sudo`, `sudo` will generally be required to create a symbolic link in `/usr/local/bin/pelias` as described in our quickstart script. This change adds `sudo` to that command and clarifies that it's the only part of the quickstart script that should use `sudo`. Connects https://github.com/pelias/docker/issues/214 --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 17c9694b..35487f12 100644 --- a/README.md +++ b/README.md @@ -82,7 +82,8 @@ set -x git clone https://github.com/pelias/docker.git && cd docker # install pelias script -ln -s "$(pwd)/pelias" /usr/local/bin/pelias +# this is the _only_ setup command that should require `sudo` +sudo ln -s "$(pwd)/pelias" /usr/local/bin/pelias # cd into the project directory cd projects/portland-metro From d21b7d8ddaa2fec0f220b43a114e13d1cb7f3697 Mon Sep 17 00:00:00 2001 From: Julian Simioni Date: Tue, 15 Sep 2020 13:57:28 -0400 Subject: [PATCH 38/98] Add one more sudo Connects https://github.com/pelias/docker/issues/214 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 35487f12..c3fc1c27 100644 --- a/README.md +++ b/README.md @@ -133,7 +133,7 @@ Advanced users may have a preference how this is done on their system, but a bas git clone https://github.com/pelias/docker.git && cd docker # install pelias script -ln -s "$(pwd)/pelias" /usr/local/bin/pelias +sudo ln -s "$(pwd)/pelias" /usr/local/bin/pelias ``` Once the command is correctly installed you should be able to run the following command to confirm the pelias command is available on your path: From 392dd5bc4bbc56b213c3540ddee1b9407c2b69eb Mon Sep 17 00:00:00 2001 From: missinglink Date: Fri, 9 Oct 2020 15:05:57 +0200 Subject: [PATCH 39/98] feat(permissions): disallow manually defining DOCKER_USER --- lib/env.sh | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/lib/env.sh b/lib/env.sh index 1aaed543..e935f9f5 100644 --- a/lib/env.sh +++ b/lib/env.sh @@ -4,8 +4,26 @@ set -e; # disable verbose logging ENV_DISPLAY_WARNINGS=false +# ensure docker runs containers as the current user (even when running with sudo) +# note: SUDO_USER is not portable to all systems but its the best we've got. +function set_docker_user(){ + CURRENT_USER=$(id -u ${SUDO_USER-${USER}}):$(id -g ${SUDO_USER-${USER}}) + if [ ! -z "${DOCKER_USER}" ] && [ "${DOCKER_USER}" != "${CURRENT_USER}" ]; then + 2>&1 printf "WARNING: The DOCKER_USER env var is deprecated, using %s.\n" ${CURRENT_USER} + 2>&1 echo "Remove the DOCKER_USER line from your .env file to silence this message." + fi + export DOCKER_USER="${CURRENT_USER}"; +} + # ensure the user environment is correctly set up function env_check(){ + if [ "${DOCKER_USER}" = "0:0" ]; then + echo "You are running as root" + echo "This is insecure and not supported by Pelias." + echo "Please try again as a non-root user." + exit 1 + fi + if [ -z "${DATA_DIR}" ]; then echo "You must set the DATA_DIR env var to a valid directory on your local machine." echo @@ -49,5 +67,7 @@ function env_load_stream(){ # fi # fi +set_docker_user + # ensure the user env is correctly set up env_check From 345ccc09fa1ed2b778910c660d9241b769eb995b Mon Sep 17 00:00:00 2001 From: missinglink Date: Fri, 9 Oct 2020 15:07:16 +0200 Subject: [PATCH 40/98] refactor(permissions): remove DOCKER_USER line from .env files --- projects/australia/.env | 1 - projects/belgium/.env | 1 - projects/brazil/.env | 1 - projects/france/.env | 1 - projects/jamaica/.env | 1 - projects/los-angeles-metro/.env | 1 - projects/netherlands/.env | 1 - projects/new-york-city/.env | 1 - projects/north-america/.env | 1 - projects/planet/.env | 1 - projects/portland-metro/.env | 1 - projects/san-jose-metro/.env | 1 - projects/singapore/.env | 1 - projects/south-africa/.env | 1 - projects/south-america/.env | 3 +-- projects/texas/.env | 1 - 16 files changed, 1 insertion(+), 17 deletions(-) diff --git a/projects/australia/.env b/projects/australia/.env index 5182d431..783d7326 100644 --- a/projects/australia/.env +++ b/projects/australia/.env @@ -1,3 +1,2 @@ COMPOSE_PROJECT_NAME=pelias DATA_DIR=/tmp/pelias/australia -DOCKER_USER=1000 diff --git a/projects/belgium/.env b/projects/belgium/.env index 73f54be2..b2c70f6c 100644 --- a/projects/belgium/.env +++ b/projects/belgium/.env @@ -1,3 +1,2 @@ COMPOSE_PROJECT_NAME=pelias -DOCKER_USER=1000 DATA_DIR=/tmp/pelias/belgium diff --git a/projects/brazil/.env b/projects/brazil/.env index fb544e03..e9db727a 100644 --- a/projects/brazil/.env +++ b/projects/brazil/.env @@ -1,3 +1,2 @@ COMPOSE_PROJECT_NAME=pelias DATA_DIR=/tmp/pelias/brazil -DOCKER_USER=1000 diff --git a/projects/france/.env b/projects/france/.env index ef9e5643..532fc877 100644 --- a/projects/france/.env +++ b/projects/france/.env @@ -1,3 +1,2 @@ COMPOSE_PROJECT_NAME=pelias DATA_DIR=/tmp/pelias/france -DOCKER_USER=1000 diff --git a/projects/jamaica/.env b/projects/jamaica/.env index 8f518082..3f2d2e1e 100644 --- a/projects/jamaica/.env +++ b/projects/jamaica/.env @@ -1,3 +1,2 @@ COMPOSE_PROJECT_NAME=pelias DATA_DIR=/tmp/pelias/jamaica -DOCKER_USER=1000 diff --git a/projects/los-angeles-metro/.env b/projects/los-angeles-metro/.env index c653e9d4..88d6da2f 100644 --- a/projects/los-angeles-metro/.env +++ b/projects/los-angeles-metro/.env @@ -1,3 +1,2 @@ COMPOSE_PROJECT_NAME=pelias DATA_DIR=/tmp/pelias/los-angeles-metro -DOCKER_USER=1000 diff --git a/projects/netherlands/.env b/projects/netherlands/.env index 46914820..cb085709 100644 --- a/projects/netherlands/.env +++ b/projects/netherlands/.env @@ -1,3 +1,2 @@ COMPOSE_PROJECT_NAME=pelias -DOCKER_USER=1000 DATA_DIR=/tmp/pelias/netherlands diff --git a/projects/new-york-city/.env b/projects/new-york-city/.env index b036090f..a70d2004 100644 --- a/projects/new-york-city/.env +++ b/projects/new-york-city/.env @@ -1,3 +1,2 @@ COMPOSE_PROJECT_NAME=pelias DATA_DIR=/tmp/pelias/new-york-city -DOCKER_USER=1000 diff --git a/projects/north-america/.env b/projects/north-america/.env index 7ca1d6c5..d60970fa 100644 --- a/projects/north-america/.env +++ b/projects/north-america/.env @@ -1,3 +1,2 @@ COMPOSE_PROJECT_NAME=pelias DATA_DIR=/tmp/pelias/north-america -DOCKER_USER=1000 diff --git a/projects/planet/.env b/projects/planet/.env index 98bede5d..d7f792c9 100644 --- a/projects/planet/.env +++ b/projects/planet/.env @@ -1,4 +1,3 @@ COMPOSE_PROJECT_NAME=pelias DATA_DIR=/tmp/pelias/data -DOCKER_USER=1000 ENABLE_GEONAMES=true diff --git a/projects/portland-metro/.env b/projects/portland-metro/.env index 7985c1a0..136b49ab 100644 --- a/projects/portland-metro/.env +++ b/projects/portland-metro/.env @@ -1,3 +1,2 @@ COMPOSE_PROJECT_NAME=pelias DATA_DIR=/tmp/pelias/portland-metro -DOCKER_USER=1000 diff --git a/projects/san-jose-metro/.env b/projects/san-jose-metro/.env index afb10214..488d7312 100644 --- a/projects/san-jose-metro/.env +++ b/projects/san-jose-metro/.env @@ -1,3 +1,2 @@ COMPOSE_PROJECT_NAME=pelias DATA_DIR=/tmp/pelias/san-jose-metro -DOCKER_USER=1000 diff --git a/projects/singapore/.env b/projects/singapore/.env index 67de74b2..921597a6 100644 --- a/projects/singapore/.env +++ b/projects/singapore/.env @@ -1,3 +1,2 @@ COMPOSE_PROJECT_NAME=pelias DATA_DIR=/tmp/pelias/singapore -DOCKER_USER=1000 diff --git a/projects/south-africa/.env b/projects/south-africa/.env index 2887638d..5dab96a8 100644 --- a/projects/south-africa/.env +++ b/projects/south-africa/.env @@ -1,3 +1,2 @@ COMPOSE_PROJECT_NAME=pelias_za DATA_DIR=/tmp/pelias/pelias_za -DOCKER_USER=1000 diff --git a/projects/south-america/.env b/projects/south-america/.env index e762ce43..5e9144c0 100644 --- a/projects/south-america/.env +++ b/projects/south-america/.env @@ -1,3 +1,2 @@ COMPOSE_PROJECT_NAME=pelias -DATA_DIR=/data -DOCKER_USER=1000 +DATA_DIR=/tmp/pelias/south-america diff --git a/projects/texas/.env b/projects/texas/.env index 30916b1f..06fcf9c4 100644 --- a/projects/texas/.env +++ b/projects/texas/.env @@ -1,4 +1,3 @@ COMPOSE_PROJECT_NAME=pelias DATA_DIR=/tmp/pelias/texas -DOCKER_USER=1000 OPENADDRESSES_PARALLELISM=2 From 9dffa863219a6ff5fc216837ad58d005940652d1 Mon Sep 17 00:00:00 2001 From: Julian Simioni Date: Mon, 12 Oct 2020 12:05:36 -0400 Subject: [PATCH 41/98] Update README for `$DOCKER_USER` deprecation --- README.md | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/README.md b/README.md index c3fc1c27..0c29af40 100644 --- a/README.md +++ b/README.md @@ -95,12 +95,6 @@ mkdir ./data sed -i '/DATA_DIR/d' .env echo 'DATA_DIR=./data' >> .env -# configure docker to write files as your local user -# see: https://github.com/pelias/docker#variable-docker_user -# note: use 'gsed' instead of 'sed' on a Mac -sed -i '/DOCKER_USER/d' .env -echo "DOCKER_USER=$(id -u)" >> .env - # run build pelias compose pull pelias elastic start @@ -183,7 +177,6 @@ Then use your text editor to modify the `.env` file to reflect your new path, it ```bash COMPOSE_PROJECT_NAME=pelias DATA_DIR=/tmp/pelias -DOCKER_USER=1000 ``` You can then list the environment variables to ensure they have been correctly set: @@ -200,9 +193,7 @@ Note: changing the `COMPOSE_PROJECT_NAME` variable is not advisable unless you k ### Variable: DOCKER_USER -All processes in Pelias containers are run as non-root users. By default, the UID of the processes will be `1000`, which is the first user ID on _most_ Linux systems and is likely to be a good option. However, if restricting file permissions in your data directory to a different user or group is important, this can be overridden by setting the `DOCKER_USER` variable. - -This variable can take just a UID or a UID:GID combination such as `1000:1000`. See the [docker-compose](https://docs.docker.com/compose/compose-file/#domainname-hostname-ipc-mac_address-privileged-read_only-shm_size-stdin_open-tty-user-working_dir) and [docker run](https://docs.docker.com/engine/reference/run/#user) documentation on controlling Docker container users for more information. +This variable is no longer used, and will be ignored. If you still have it in your `.env` file, you can safely remove it. ## CLI commands From 680f5e120a3e38be0f9a1ed0b4b21f32fe3eaf27 Mon Sep 17 00:00:00 2001 From: Julian Simioni Date: Mon, 12 Oct 2020 12:17:58 -0400 Subject: [PATCH 42/98] Add readme section on permissions, non-root Docker --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index 0c29af40..67b855cf 100644 --- a/README.md +++ b/README.md @@ -40,6 +40,12 @@ You will need to have a [modern version of `docker`](https://docs.docker.com/eng This project supports Linux and Mac OSX operatings systems. Windows is currently [not supported](https://github.com/pelias/docker/issues/124). +### Permissions + +In order to ensure security, Pelias docker containers, and the `pelias` helper script, will not run as a root user! + +Be sure you are running as a non-root user and that this user can execute `docker` commands. See the Docker documentation article [Manage Docker as a non-root user](https://docs.docker.com/engine/install/linux-postinstall/#manage-docker-as-a-non-root-user) to do this. + ## Requirements for Linux - Install `util-linux` using your distribution's package manager - Alpine Linux: `sudo apk add util-linux` From 7988a8dce679353f9b7d950e6166fea9e4cae13a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torbj=C3=B8rn=20Kva=CC=8Ale?= Date: Tue, 13 Oct 2020 21:11:13 +0200 Subject: [PATCH 43/98] add project for norway --- projects/norway/.env | 3 + projects/norway/README.md | 32 +++++++++ projects/norway/docker-compose.yml | 112 +++++++++++++++++++++++++++++ projects/norway/elasticsearch.yml | 4 ++ projects/norway/pelias.json | 66 +++++++++++++++++ 5 files changed, 217 insertions(+) create mode 100644 projects/norway/.env create mode 100644 projects/norway/README.md create mode 100644 projects/norway/docker-compose.yml create mode 100644 projects/norway/elasticsearch.yml create mode 100644 projects/norway/pelias.json diff --git a/projects/norway/.env b/projects/norway/.env new file mode 100644 index 00000000..7b5402be --- /dev/null +++ b/projects/norway/.env @@ -0,0 +1,3 @@ +COMPOSE_PROJECT_NAME=pelias +DOCKER_USER=1000 +DATA_DIR=/tmp/pelias/norway diff --git a/projects/norway/README.md b/projects/norway/README.md new file mode 100644 index 00000000..c857b72e --- /dev/null +++ b/projects/norway/README.md @@ -0,0 +1,32 @@ +# Norway area + +This project is configured to download/prepare/build a complete Pelias installation for Norway. + +# Setup + +Please refer to the instructions at in order to install and configure your docker environment. + +The minimum configuration required in order to run this project are [installing prerequisites](https://github.com/pelias/docker#prerequisites), [install the pelias command](https://github.com/pelias/docker#installing-the-pelias-command) and [configure the environment](https://github.com/pelias/docker#configure-environment). + +Please ensure that's all working fine before continuing. + +# Run a Build + +To run a complete build, execute the following commands: + +```bash +pelias compose pull +pelias elastic start +pelias elastic wait +pelias elastic create +pelias download all +pelias prepare all +pelias import all +pelias compose up +``` + +# Make an Example Query + +You can now make queries against your new Pelias build: + + diff --git a/projects/norway/docker-compose.yml b/projects/norway/docker-compose.yml new file mode 100644 index 00000000..8ffc4b65 --- /dev/null +++ b/projects/norway/docker-compose.yml @@ -0,0 +1,112 @@ +version: '3' +networks: + default: + driver: bridge +services: + libpostal: + image: pelias/libpostal-service + container_name: pelias_libpostal + user: "${DOCKER_USER}" + restart: always + ports: [ "4400:4400" ] + schema: + image: pelias/schema:master + container_name: pelias_schema + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + api: + image: pelias/api:master + container_name: pelias_api + user: "${DOCKER_USER}" + restart: always + environment: [ "PORT=4000" ] + ports: [ "4000:4000" ] + volumes: + - "./pelias.json:/code/pelias.json" + placeholder: + image: pelias/placeholder:master + container_name: pelias_placeholder + user: "${DOCKER_USER}" + restart: always + environment: [ "PORT=4100" ] + ports: [ "4100:4100" ] + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + - "./blacklist/:/data/blacklist" + whosonfirst: + image: pelias/whosonfirst:master + container_name: pelias_whosonfirst + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + openstreetmap: + image: pelias/openstreetmap:master + container_name: pelias_openstreetmap + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + openaddresses: + image: pelias/openaddresses:master + container_name: pelias_openaddresses + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + csv-importer: + image: pelias/csv-importer:master + container_name: pelias_csv_importer + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + - "./blacklist/:/data/blacklist" + polylines: + image: pelias/polylines:master + container_name: pelias_polylines + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + interpolation: + image: pelias/interpolation:master + container_name: pelias_interpolation + user: "${DOCKER_USER}" + restart: always + environment: [ "PORT=4300" ] + ports: [ "4300:4300" ] + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + pip: + image: pelias/pip-service:master + container_name: pelias_pip-service + user: "${DOCKER_USER}" + restart: always + environment: [ "PORT=4200" ] + ports: [ "4200:4200" ] + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + elasticsearch: + image: pelias/elasticsearch:7.5.1 + container_name: pelias_elasticsearch + user: "${DOCKER_USER}" + restart: always + ports: [ "9200:9200", "9300:9300" ] + volumes: + - "./elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro" + - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" + ulimits: + memlock: + soft: -1 + hard: -1 + nofile: + soft: 65536 + hard: 65536 + cap_add: [ "IPC_LOCK" ] + security_opt: + - seccomp=unconfined diff --git a/projects/norway/elasticsearch.yml b/projects/norway/elasticsearch.yml new file mode 100644 index 00000000..ca137940 --- /dev/null +++ b/projects/norway/elasticsearch.yml @@ -0,0 +1,4 @@ +network.host: 0.0.0.0 +bootstrap.memory_lock: true +indices.breaker.fielddata.limit: 85% +indices.fielddata.cache.size: 75% \ No newline at end of file diff --git a/projects/norway/pelias.json b/projects/norway/pelias.json new file mode 100644 index 00000000..28ee859c --- /dev/null +++ b/projects/norway/pelias.json @@ -0,0 +1,66 @@ +{ + "logger": { + "level": "debug", + "timestamp": false + }, + "esclient": { + "apiVersion": "7.5", + "hosts": [ + { "host": "elasticsearch" } + ] + }, + "elasticsearch": { + "settings": { + "index": { + "refresh_interval": "10s", + "number_of_replicas": "0", + "number_of_shards": "1" + } + } + }, + "api": { + "services": { + "pip": { "url": "http://pip:4200" }, + "libpostal": { "url": "http://libpostal:4400" }, + "placeholder": { "url": "http://placeholder:4100" }, + "interpolation": { "url": "http://interpolation:4300" } + }, + "defaultParameters": { + "focus.point.lat": 60.47, + "focus.point.lon": 6.83 + } + }, + "imports": { + "adminLookup": { + "enabled": true + }, + "geonames": { + "datapath": "/data/geonames", + "countryCode": "NO" + }, + "openstreetmap": { + "download": [ + { "sourceURL": "http://download.geofabrik.de/europe/norway-latest.osm.pbf" } + ], + "leveldbpath": "/tmp", + "datapath": "/data/openstreetmap", + "import": [{ + "filename": "norway-latest.osm.pbf" + }] + }, + "openaddresses": { + "datapath": "/data/openaddresses", + "files": ["no/countrywide.csv"] + }, + "polyline": { + "datapath": "/data/polylines", + "files": [ "extract.0sv" ] + }, + "whosonfirst": { + "datapath": "/data/whosonfirst", + "countryCode": "NO", + "importPostalcodes": true, + "importPlace": [ "85633341" ] + } + } +} From 687d4d18ac94877a6094f9135eda5c1c5a756c82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torbj=C3=B8rn=20Kv=C3=A5le?= Date: Wed, 14 Oct 2020 20:12:57 +0200 Subject: [PATCH 44/98] remove coordinates for norway project file --- projects/norway/pelias.json | 4 ---- 1 file changed, 4 deletions(-) diff --git a/projects/norway/pelias.json b/projects/norway/pelias.json index 28ee859c..f9c72274 100644 --- a/projects/norway/pelias.json +++ b/projects/norway/pelias.json @@ -24,10 +24,6 @@ "libpostal": { "url": "http://libpostal:4400" }, "placeholder": { "url": "http://placeholder:4100" }, "interpolation": { "url": "http://interpolation:4300" } - }, - "defaultParameters": { - "focus.point.lat": 60.47, - "focus.point.lon": 6.83 } }, "imports": { From 982fd2e2fd9c8f16cc074d5083f4c0b6662d7c41 Mon Sep 17 00:00:00 2001 From: jimmylevell Date: Fri, 16 Oct 2020 15:29:34 +0200 Subject: [PATCH 45/98] feat(project): added Austria to projects (#222) * feat(addAustria): added Austria to projects * added test url * fix(readme): fixed typo in readme * Update .env * Update .env * Update .env Co-authored-by: James --- projects/austria/.env | 2 + projects/austria/README.md | 32 ++++++++ projects/austria/docker-compose.yml | 112 ++++++++++++++++++++++++++++ projects/austria/elasticsearch.yml | 4 + projects/austria/pelias.json | 66 ++++++++++++++++ projects/portland-metro/.env | 1 + 6 files changed, 217 insertions(+) create mode 100644 projects/austria/.env create mode 100644 projects/austria/README.md create mode 100644 projects/austria/docker-compose.yml create mode 100644 projects/austria/elasticsearch.yml create mode 100644 projects/austria/pelias.json diff --git a/projects/austria/.env b/projects/austria/.env new file mode 100644 index 00000000..532d0361 --- /dev/null +++ b/projects/austria/.env @@ -0,0 +1,2 @@ +COMPOSE_PROJECT_NAME=pelias +DATA_DIR=/tmp/pelias/austria diff --git a/projects/austria/README.md b/projects/austria/README.md new file mode 100644 index 00000000..180cedef --- /dev/null +++ b/projects/austria/README.md @@ -0,0 +1,32 @@ +# Austrian area + +This project is configured to download/prepare/build a complete Pelias installation for Austria. + +# Setup + +Please refer to the instructions at in order to install and configure your docker environment. + +The minimum configuration required in order to run this project are [installing prerequisites](https://github.com/pelias/docker#prerequisites), [install the pelias command](https://github.com/pelias/docker#installing-the-pelias-command) and [configure the environment](https://github.com/pelias/docker#configure-environment). + +Please ensure that's all working fine before continuing. + +# Run a Build + +To run a complete build, execute the following commands: + +```bash +pelias compose pull +pelias elastic start +pelias elastic wait +pelias elastic create +pelias download all +pelias prepare all +pelias import all +pelias compose up +``` + +# Make an Example Query + +You can now make queries against your new Pelias build: + + diff --git a/projects/austria/docker-compose.yml b/projects/austria/docker-compose.yml new file mode 100644 index 00000000..8ffc4b65 --- /dev/null +++ b/projects/austria/docker-compose.yml @@ -0,0 +1,112 @@ +version: '3' +networks: + default: + driver: bridge +services: + libpostal: + image: pelias/libpostal-service + container_name: pelias_libpostal + user: "${DOCKER_USER}" + restart: always + ports: [ "4400:4400" ] + schema: + image: pelias/schema:master + container_name: pelias_schema + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + api: + image: pelias/api:master + container_name: pelias_api + user: "${DOCKER_USER}" + restart: always + environment: [ "PORT=4000" ] + ports: [ "4000:4000" ] + volumes: + - "./pelias.json:/code/pelias.json" + placeholder: + image: pelias/placeholder:master + container_name: pelias_placeholder + user: "${DOCKER_USER}" + restart: always + environment: [ "PORT=4100" ] + ports: [ "4100:4100" ] + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + - "./blacklist/:/data/blacklist" + whosonfirst: + image: pelias/whosonfirst:master + container_name: pelias_whosonfirst + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + openstreetmap: + image: pelias/openstreetmap:master + container_name: pelias_openstreetmap + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + openaddresses: + image: pelias/openaddresses:master + container_name: pelias_openaddresses + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + csv-importer: + image: pelias/csv-importer:master + container_name: pelias_csv_importer + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + - "./blacklist/:/data/blacklist" + polylines: + image: pelias/polylines:master + container_name: pelias_polylines + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + interpolation: + image: pelias/interpolation:master + container_name: pelias_interpolation + user: "${DOCKER_USER}" + restart: always + environment: [ "PORT=4300" ] + ports: [ "4300:4300" ] + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + pip: + image: pelias/pip-service:master + container_name: pelias_pip-service + user: "${DOCKER_USER}" + restart: always + environment: [ "PORT=4200" ] + ports: [ "4200:4200" ] + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + elasticsearch: + image: pelias/elasticsearch:7.5.1 + container_name: pelias_elasticsearch + user: "${DOCKER_USER}" + restart: always + ports: [ "9200:9200", "9300:9300" ] + volumes: + - "./elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro" + - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" + ulimits: + memlock: + soft: -1 + hard: -1 + nofile: + soft: 65536 + hard: 65536 + cap_add: [ "IPC_LOCK" ] + security_opt: + - seccomp=unconfined diff --git a/projects/austria/elasticsearch.yml b/projects/austria/elasticsearch.yml new file mode 100644 index 00000000..ca137940 --- /dev/null +++ b/projects/austria/elasticsearch.yml @@ -0,0 +1,4 @@ +network.host: 0.0.0.0 +bootstrap.memory_lock: true +indices.breaker.fielddata.limit: 85% +indices.fielddata.cache.size: 75% \ No newline at end of file diff --git a/projects/austria/pelias.json b/projects/austria/pelias.json new file mode 100644 index 00000000..ab2e5d50 --- /dev/null +++ b/projects/austria/pelias.json @@ -0,0 +1,66 @@ +{ + "logger": { + "level": "debug", + "timestamp": false + }, + "esclient": { + "apiVersion": "7.5", + "hosts": [ + { "host": "elasticsearch" } + ] + }, + "elasticsearch": { + "settings": { + "index": { + "refresh_interval": "10s", + "number_of_replicas": "0", + "number_of_shards": "1" + } + } + }, + "api": { + "services": { + "pip": { "url": "http://pip:4200" }, + "libpostal": { "url": "http://libpostal:4400" }, + "placeholder": { "url": "http://placeholder:4100" }, + "interpolation": { "url": "http://interpolation:4300" } + }, + "defaultParameters": { + "focus.point.lat": 50.85, + "focus.point.lon": 4.35 + } + }, + "imports": { + "adminLookup": { + "enabled": true + }, + "geonames": { + "datapath": "/data/geonames", + "countryCode": "AT" + }, + "openstreetmap": { + "download": [ + { "sourceURL": "http://download.geofabrik.de/europe/austria-latest.osm.pbf" } + ], + "leveldbpath": "/tmp", + "datapath": "/data/openstreetmap", + "import": [{ + "filename": "austria-latest.osm.pbf" + }] + }, + "openaddresses": { + "datapath": "/data/openaddresses", + "files": ["at/31254.csv", "at/31255.csv", "at/31256.csv", "at/city_of_vienna.csv", "at/tirol.csv"] + }, + "polyline": { + "datapath": "/data/polylines", + "files": [ "extract.0sv" ] + }, + "whosonfirst": { + "datapath": "/data/whosonfirst", + "countryCode": "AT", + "importPostalcodes": true, + "importPlace": [ "85632785" ] + } + } +} diff --git a/projects/portland-metro/.env b/projects/portland-metro/.env index 136b49ab..7985c1a0 100644 --- a/projects/portland-metro/.env +++ b/projects/portland-metro/.env @@ -1,2 +1,3 @@ COMPOSE_PROJECT_NAME=pelias DATA_DIR=/tmp/pelias/portland-metro +DOCKER_USER=1000 From 68cd734c459dc5bd3de858993d82fd3b3f22869b Mon Sep 17 00:00:00 2001 From: missinglink Date: Fri, 16 Oct 2020 15:31:56 +0200 Subject: [PATCH 46/98] fix(project): remove DOCKER_USER lines from project .env files --- projects/norway/.env | 1 - projects/portland-metro/.env | 1 - 2 files changed, 2 deletions(-) diff --git a/projects/norway/.env b/projects/norway/.env index 7b5402be..046430ea 100644 --- a/projects/norway/.env +++ b/projects/norway/.env @@ -1,3 +1,2 @@ COMPOSE_PROJECT_NAME=pelias -DOCKER_USER=1000 DATA_DIR=/tmp/pelias/norway diff --git a/projects/portland-metro/.env b/projects/portland-metro/.env index 7985c1a0..136b49ab 100644 --- a/projects/portland-metro/.env +++ b/projects/portland-metro/.env @@ -1,3 +1,2 @@ COMPOSE_PROJECT_NAME=pelias DATA_DIR=/tmp/pelias/portland-metro -DOCKER_USER=1000 From 9066d5f7546dbeebfa6698c68c66f0f3662c4764 Mon Sep 17 00:00:00 2001 From: Julian Simioni Date: Thu, 22 Oct 2020 14:52:34 -0400 Subject: [PATCH 47/98] Increase Elasticsearch `max_clause_count` Complex configurations with many synonyms can run into problems with Elasticsearch throwing an error about exceeding the `max_clause_count`. Internally, Elasticsearch takes queries that may be quite short and rewrites them into potentially many Lucene clauses. The Elasticsearch default (https://www.elastic.co/guide/en/elasticsearch/reference/current/search-settings.html) is to allow up to 1024 clauses. While the Elasticsearch docs recommend against increasing this setting, doing so allows us to handle more complex synonym configurations, and is worth exploring. Connects https://github.com/OpenTransitTools/trimet-mod-pelias/issues/33 --- images/elasticsearch/7.5.1/elasticsearch.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/images/elasticsearch/7.5.1/elasticsearch.yml b/images/elasticsearch/7.5.1/elasticsearch.yml index 4f37ad08..6086c701 100644 --- a/images/elasticsearch/7.5.1/elasticsearch.yml +++ b/images/elasticsearch/7.5.1/elasticsearch.yml @@ -6,3 +6,4 @@ node.data: true thread_pool: write: queue_size: 1000 +indices.query.bool.max_clause_count: 4000 From abfd5d809afcfceed9534ba5f0854d2aa0d49e29 Mon Sep 17 00:00:00 2001 From: Ryan Bateman Date: Mon, 23 Nov 2020 23:50:44 +0100 Subject: [PATCH 48/98] feat(germany): Add Germany as a project (#226) * Added Germany as a set of configuraiton files and somewhat customised README * Removed unnecessary sections that were either inherited defaults already, empty sections, or default parameters that would be performance inhibitors given the size of the config/dataset. * Disable postalcode import from whosonfirst dataset as it's out of date --- projects/germany/.env | 2 + projects/germany/README.md | 34 +++++++++ projects/germany/docker-compose.yml | 112 ++++++++++++++++++++++++++++ projects/germany/elasticsearch.yml | 4 + projects/germany/pelias.json | 59 +++++++++++++++ 5 files changed, 211 insertions(+) create mode 100644 projects/germany/.env create mode 100644 projects/germany/README.md create mode 100644 projects/germany/docker-compose.yml create mode 100644 projects/germany/elasticsearch.yml create mode 100644 projects/germany/pelias.json diff --git a/projects/germany/.env b/projects/germany/.env new file mode 100644 index 00000000..c27c8edb --- /dev/null +++ b/projects/germany/.env @@ -0,0 +1,2 @@ +COMPOSE_PROJECT_NAME=pelias +DATA_DIR=./data diff --git a/projects/germany/README.md b/projects/germany/README.md new file mode 100644 index 00000000..68e78bdb --- /dev/null +++ b/projects/germany/README.md @@ -0,0 +1,34 @@ +# Germany + +This project is configured to download/prepare/build a complete Pelias installation for Germany. + +# Setup + +Please refer to the instructions at in order to install and configure your docker environment. + +Given the coverage provided by OpenAddresses is somewhat sparse, it's worth examining the configuration and the OpenAddresses coverage to understand your queries. + +The minimum configuration required in order to run this project are [installing prerequisites](https://github.com/pelias/docker#prerequisites), [install the pelias command](https://github.com/pelias/docker#installing-the-pelias-command) and [configure the environment](https://github.com/pelias/docker#configure-environment). + +Please ensure that's all working fine before continuing. + +# Run a Build + +To run a complete build, execute the following commands: + +```bash +pelias compose pull +pelias elastic start +pelias elastic wait +pelias elastic create +pelias download all +pelias prepare all +pelias import all +pelias compose up +``` + +# Make an Example Query + +You can now make queries against your new Pelias build: + + diff --git a/projects/germany/docker-compose.yml b/projects/germany/docker-compose.yml new file mode 100644 index 00000000..8ffc4b65 --- /dev/null +++ b/projects/germany/docker-compose.yml @@ -0,0 +1,112 @@ +version: '3' +networks: + default: + driver: bridge +services: + libpostal: + image: pelias/libpostal-service + container_name: pelias_libpostal + user: "${DOCKER_USER}" + restart: always + ports: [ "4400:4400" ] + schema: + image: pelias/schema:master + container_name: pelias_schema + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + api: + image: pelias/api:master + container_name: pelias_api + user: "${DOCKER_USER}" + restart: always + environment: [ "PORT=4000" ] + ports: [ "4000:4000" ] + volumes: + - "./pelias.json:/code/pelias.json" + placeholder: + image: pelias/placeholder:master + container_name: pelias_placeholder + user: "${DOCKER_USER}" + restart: always + environment: [ "PORT=4100" ] + ports: [ "4100:4100" ] + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + - "./blacklist/:/data/blacklist" + whosonfirst: + image: pelias/whosonfirst:master + container_name: pelias_whosonfirst + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + openstreetmap: + image: pelias/openstreetmap:master + container_name: pelias_openstreetmap + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + openaddresses: + image: pelias/openaddresses:master + container_name: pelias_openaddresses + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + csv-importer: + image: pelias/csv-importer:master + container_name: pelias_csv_importer + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + - "./blacklist/:/data/blacklist" + polylines: + image: pelias/polylines:master + container_name: pelias_polylines + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + interpolation: + image: pelias/interpolation:master + container_name: pelias_interpolation + user: "${DOCKER_USER}" + restart: always + environment: [ "PORT=4300" ] + ports: [ "4300:4300" ] + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + pip: + image: pelias/pip-service:master + container_name: pelias_pip-service + user: "${DOCKER_USER}" + restart: always + environment: [ "PORT=4200" ] + ports: [ "4200:4200" ] + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + elasticsearch: + image: pelias/elasticsearch:7.5.1 + container_name: pelias_elasticsearch + user: "${DOCKER_USER}" + restart: always + ports: [ "9200:9200", "9300:9300" ] + volumes: + - "./elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro" + - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" + ulimits: + memlock: + soft: -1 + hard: -1 + nofile: + soft: 65536 + hard: 65536 + cap_add: [ "IPC_LOCK" ] + security_opt: + - seccomp=unconfined diff --git a/projects/germany/elasticsearch.yml b/projects/germany/elasticsearch.yml new file mode 100644 index 00000000..ca137940 --- /dev/null +++ b/projects/germany/elasticsearch.yml @@ -0,0 +1,4 @@ +network.host: 0.0.0.0 +bootstrap.memory_lock: true +indices.breaker.fielddata.limit: 85% +indices.fielddata.cache.size: 75% \ No newline at end of file diff --git a/projects/germany/pelias.json b/projects/germany/pelias.json new file mode 100644 index 00000000..58c9bcbf --- /dev/null +++ b/projects/germany/pelias.json @@ -0,0 +1,59 @@ +{ + "logger": { + "level": "debug", + "timestamp": false + }, + "esclient": { + "apiVersion": "7.5", + "hosts": [ + { "host": "elasticsearch" } + ] + }, + "elasticsearch": { + "settings": { + "index": { + "refresh_interval": "10s", + "number_of_replicas": "0", + "number_of_shards": "1" + } + } + }, + "api": { + "services": { + "pip": { "url": "http://pip:4200" }, + "libpostal": { "url": "http://libpostal:4400" }, + "placeholder": { "url": "http://placeholder:4100" }, + "interpolation": { "url": "http://interpolation:4300" } + } + }, + "imports": { + "geonames": { + "datapath": "/data/geonames", + "countryCode": "DE" + }, + "openstreetmap": { + "download": [ + { "sourceURL": "http://download.geofabrik.de/europe/germany-latest.osm.pbf" } + ], + "leveldbpath": "/tmp", + "datapath": "/data/openstreetmap", + "import": [{ + "filename": "germany-latest.osm.pbf" + }] + }, + "openaddresses": { + "datapath": "/data/openaddresses", + "files": ["de/berlin.csv", "de/he/city_of_frankfurtammain.csv", "de/he/city_of_kassel.csv", "de/hh/statewide.csv", "de/ni/bentheim.csv", "de/nw/city_of_cologne.csv", "de/nw/city_of_wesel.csv", "de/nw/city_of_wuppertal.csv", "de/nw/statewide.csv", "de/sn/statewide.csv", "de/th/statewide.csv"] + }, + "polyline": { + "datapath": "/data/polylines", + "files": [ "extract.0sv" ] + }, + "whosonfirst": { + "datapath": "/data/whosonfirst", + "countryCode": "DE", + "importPostalcodes": false, + "importPlace": [ "85633111" ] + } + } +} From dfbee174a886a63677e01760b3b934d875563942 Mon Sep 17 00:00:00 2001 From: Markus Schlotbohm Date: Wed, 25 Nov 2020 21:02:26 +0100 Subject: [PATCH 49/98] chore(project): Add `Kreis Viersen` to openaddresses import files (#231) --- projects/germany/pelias.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/germany/pelias.json b/projects/germany/pelias.json index 58c9bcbf..b7b83957 100644 --- a/projects/germany/pelias.json +++ b/projects/germany/pelias.json @@ -43,7 +43,7 @@ }, "openaddresses": { "datapath": "/data/openaddresses", - "files": ["de/berlin.csv", "de/he/city_of_frankfurtammain.csv", "de/he/city_of_kassel.csv", "de/hh/statewide.csv", "de/ni/bentheim.csv", "de/nw/city_of_cologne.csv", "de/nw/city_of_wesel.csv", "de/nw/city_of_wuppertal.csv", "de/nw/statewide.csv", "de/sn/statewide.csv", "de/th/statewide.csv"] + "files": ["de/berlin.csv", "de/he/city_of_frankfurtammain.csv", "de/he/city_of_kassel.csv", "de/hh/statewide.csv", "de/ni/bentheim.csv", "de/nw/city_of_cologne.csv", "de/nw/city_of_wesel.csv", "de/nw/city_of_wuppertal.csv", "de/nw/kreis_viersen.csv", "de/nw/statewide.csv", "de/sn/statewide.csv", "de/th/statewide.csv"] }, "polyline": { "datapath": "/data/polylines", From 4ea60c0aa8ee72b78591ff4d9ae328945539b831 Mon Sep 17 00:00:00 2001 From: Sergiusz Kierat Date: Sun, 10 Jan 2021 16:51:11 +0100 Subject: [PATCH 50/98] feat(poland): Add Poland as a project * add Poland as a set of configuration files --- projects/poland/.env | 2 + projects/poland/README.md | 35 +++++ projects/poland/docker-compose.yml | 128 ++++++++++++++++++ projects/poland/elasticsearch.yml | 4 + projects/poland/pelias.json | 99 ++++++++++++++ .../poland/test_cases/search_address.json | 32 +++++ 6 files changed, 300 insertions(+) create mode 100644 projects/poland/.env create mode 100644 projects/poland/README.md create mode 100644 projects/poland/docker-compose.yml create mode 100644 projects/poland/elasticsearch.yml create mode 100644 projects/poland/pelias.json create mode 100644 projects/poland/test_cases/search_address.json diff --git a/projects/poland/.env b/projects/poland/.env new file mode 100644 index 00000000..c27c8edb --- /dev/null +++ b/projects/poland/.env @@ -0,0 +1,2 @@ +COMPOSE_PROJECT_NAME=pelias +DATA_DIR=./data diff --git a/projects/poland/README.md b/projects/poland/README.md new file mode 100644 index 00000000..bf75aa01 --- /dev/null +++ b/projects/poland/README.md @@ -0,0 +1,35 @@ +# Poland + +This project is configured to download/prepare/build a complete Pelias installation for Poland. + +# Setup + +Please refer to the instructions at in order to install and configure your docker environment. + +Given the coverage provided by OpenAddresses is somewhat sparse, it's worth examining the configuration and the OpenAddresses coverage to understand your queries. + +The minimum configuration required in order to run this project are [installing prerequisites](https://github.com/pelias/docker#prerequisites), [install the pelias command](https://github.com/pelias/docker#installing-the-pelias-command) and [configure the environment](https://github.com/pelias/docker#configure-environment). + +Please ensure that's all working fine before continuing. + +# Run a Build + +To run a complete build, execute the following commands: + +```bash +pelias compose pull +pelias elastic start +pelias elastic wait +pelias elastic create +pelias download all +pelias prepare all +pelias import all +pelias compose up +pelias test run +``` + +# Make an Example Query + +You can now make queries against your new Pelias build: + + diff --git a/projects/poland/docker-compose.yml b/projects/poland/docker-compose.yml new file mode 100644 index 00000000..11239a4b --- /dev/null +++ b/projects/poland/docker-compose.yml @@ -0,0 +1,128 @@ +version: '3' +networks: + default: + driver: bridge +services: + libpostal: + image: pelias/libpostal-service + container_name: pelias_libpostal + user: "${DOCKER_USER}" + restart: always + ports: [ "4400:4400" ] + schema: + image: pelias/schema:master + container_name: pelias_schema + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + api: + image: pelias/api:master + container_name: pelias_api + user: "${DOCKER_USER}" + restart: always + environment: [ "PORT=4000" ] + ports: [ "4000:4000" ] + volumes: + - "./pelias.json:/code/pelias.json" + placeholder: + image: pelias/placeholder:master + container_name: pelias_placeholder + user: "${DOCKER_USER}" + restart: always + environment: [ "PORT=4100" ] + ports: [ "4100:4100" ] + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + - "./blacklist/:/data/blacklist" + whosonfirst: + image: pelias/whosonfirst:master + container_name: pelias_whosonfirst + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + openstreetmap: + image: pelias/openstreetmap:master + container_name: pelias_openstreetmap + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + openaddresses: + image: pelias/openaddresses:master + container_name: pelias_openaddresses + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + csv-importer: + image: pelias/csv-importer:master + container_name: pelias_csv_importer + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + - "./blacklist/:/data/blacklist" + transit: + image: pelias/transit:master + container_name: pelias_transit + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + polylines: + image: pelias/polylines:master + container_name: pelias_polylines + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + interpolation: + image: pelias/interpolation:master + container_name: pelias_interpolation + user: "${DOCKER_USER}" + restart: always + environment: [ "PORT=4300" ] + ports: [ "4300:4300" ] + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + pip: + image: pelias/pip-service:master + container_name: pelias_pip-service + user: "${DOCKER_USER}" + restart: always + environment: [ "PORT=4200" ] + ports: [ "4200:4200" ] + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + elasticsearch: + image: pelias/elasticsearch:7.5.1 + container_name: pelias_elasticsearch + user: "${DOCKER_USER}" + restart: always + ports: [ "9200:9200", "9300:9300" ] + volumes: + - "./elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro" + - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" + ulimits: + memlock: + soft: -1 + hard: -1 + nofile: + soft: 65536 + hard: 65536 + cap_add: [ "IPC_LOCK" ] + security_opt: + - seccomp=unconfined + fuzzy-tester: + image: pelias/fuzzy-tester:master + container_name: pelias_fuzzy_tester + user: "${DOCKER_USER}" + restart: "no" + command: "--help" + volumes: + - "./pelias.json:/code/pelias.json" + - "./test_cases:/code/pelias/fuzzy-tester/test_cases" diff --git a/projects/poland/elasticsearch.yml b/projects/poland/elasticsearch.yml new file mode 100644 index 00000000..ca137940 --- /dev/null +++ b/projects/poland/elasticsearch.yml @@ -0,0 +1,4 @@ +network.host: 0.0.0.0 +bootstrap.memory_lock: true +indices.breaker.fielddata.limit: 85% +indices.fielddata.cache.size: 75% \ No newline at end of file diff --git a/projects/poland/pelias.json b/projects/poland/pelias.json new file mode 100644 index 00000000..bfac46b3 --- /dev/null +++ b/projects/poland/pelias.json @@ -0,0 +1,99 @@ +{ + "logger": { + "level": "debug", + "timestamp": false + }, + "esclient": { + "apiVersion": "7.5", + "hosts": [ + { + "host": "elasticsearch" + } + ] + }, + "elasticsearch": { + "settings": { + "index": { + "refresh_interval": "10s", + "number_of_replicas": "0", + "number_of_shards": "1" + } + } + }, + "acceptance-tests": { + "endpoints": { + "docker": "http://api:4000/v1/" + } + }, + "api": { + "services": { + "pip": { + "url": "http://pip:4200" + }, + "libpostal": { + "url": "http://libpostal:4400" + }, + "placeholder": { + "url": "http://placeholder:4100" + }, + "interpolation": { + "url": "http://interpolation:4300" + } + } + }, + "imports": { + "geonames": { + "datapath": "/data/geonames", + "countryCode": "PL" + }, + "openstreetmap": { + "download": [ + { + "sourceURL": "http://download.geofabrik.de/europe/poland-latest.osm.pbf" + } + ], + "leveldbpath": "/tmp", + "datapath": "/data/openstreetmap", + "import": [ + { + "filename": "poland-latest.osm.pbf" + } + ] + }, + "openaddresses": { + "datapath": "/data/openaddresses", + "files": [ + "pl/dolnoslaskie.csv", + "pl/kujawsko-pomorskie.csv", + "pl/lodzkie.csv", + "pl/lubelskie.csv", + "pl/lubuskie.csv", + "pl/malopolskie.csv", + "pl/mazowieckie.csv", + "pl/opolskie.csv", + "pl/podkarpackie.csv", + "pl/podlaskie.csv", + "pl/pomorskie.csv", + "pl/slaskie.csv", + "pl/swietokrzyskie.csv", + "pl/warminsko-mazurskie.csv", + "pl/wielkopolskie.csv", + "pl/zachodniopomorskie.csv" + ] + }, + "polyline": { + "datapath": "/data/polylines", + "files": [ + "extract.0sv" + ] + }, + "whosonfirst": { + "datapath": "/data/whosonfirst", + "countryCode": "PL", + "importPostalcodes": false, + "importPlace": [ + "85633723" + ] + } + } +} diff --git a/projects/poland/test_cases/search_address.json b/projects/poland/test_cases/search_address.json new file mode 100644 index 00000000..e27f6409 --- /dev/null +++ b/projects/poland/test_cases/search_address.json @@ -0,0 +1,32 @@ +{ + "name": "/v1/search address", + "description": "addresses in Poland", + "priorityThresh": 1, + "normalizers": { + "name": [ + "toUpperCase", + "removeOrdinals", + "stripPunctuation", + "abbreviateDirectionals", + "abbreviateStreetSuffixes" + ] + }, + "tests": [ + { + "id": 1, + "status": "pass", + "in": { + "text": "sulejówek" + }, + "expected": { + "properties": [ + { + "name": "SULEJWEK", + "locality": "Sulejówek", + "country_a": "POL" + } + ] + } + } + ] +} From 4e36ae06f03db78399f72a720428f6cfeca5c32e Mon Sep 17 00:00:00 2001 From: Joshua McLauchlan Date: Thu, 11 Feb 2021 19:29:07 +1030 Subject: [PATCH 51/98] Restricted pelias+deps port exposure to localhost --- projects/australia/docker-compose.yml | 12 ++++++------ projects/austria/docker-compose.yml | 12 ++++++------ projects/belgium/docker-compose.yml | 12 ++++++------ projects/brazil/docker-compose.yml | 12 ++++++------ projects/france/docker-compose.yml | 12 ++++++------ projects/germany/docker-compose.yml | 12 ++++++------ projects/jamaica/docker-compose.yml | 12 ++++++------ projects/los-angeles-metro/docker-compose.yml | 12 ++++++------ projects/netherlands/docker-compose.yml | 12 ++++++------ projects/new-york-city/docker-compose.yml | 12 ++++++------ projects/north-america/docker-compose.yml | 12 ++++++------ projects/norway/docker-compose.yml | 12 ++++++------ projects/planet/docker-compose.yml | 12 ++++++------ projects/poland/docker-compose.yml | 12 ++++++------ projects/portland-metro/docker-compose.yml | 12 ++++++------ projects/san-jose-metro/docker-compose.yml | 12 ++++++------ projects/singapore/docker-compose.yml | 12 ++++++------ projects/south-africa/docker-compose.yml | 14 +++++++------- projects/south-america/docker-compose.yml | 12 ++++++------ projects/texas/docker-compose.yml | 12 ++++++------ 20 files changed, 121 insertions(+), 121 deletions(-) diff --git a/projects/australia/docker-compose.yml b/projects/australia/docker-compose.yml index 1073985b..6544177e 100644 --- a/projects/australia/docker-compose.yml +++ b/projects/australia/docker-compose.yml @@ -8,7 +8,7 @@ services: container_name: pelias_libpostal user: "${DOCKER_USER}" restart: always - ports: [ "4400:4400" ] + ports: [ "127.0.0.1:4400:4400" ] schema: image: pelias/schema:master container_name: pelias_schema @@ -21,7 +21,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "4000:4000" ] + ports: [ "127.0.0.1:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: @@ -30,7 +30,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4100" ] - ports: [ "4100:4100" ] + ports: [ "127.0.0.1:4100:4100" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -103,7 +103,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4300" ] - ports: [ "4300:4300" ] + ports: [ "127.0.0.1:4300:4300" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -113,7 +113,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4200" ] - ports: [ "4200:4200" ] + ports: [ "127.0.0.1:4200:4200" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -122,7 +122,7 @@ services: container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always - ports: [ "9200:9200", "9300:9300" ] + ports: [ "127.0.0.1:9200:9200", "127.0.0.1:9300:9300" ] volumes: - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" ulimits: diff --git a/projects/austria/docker-compose.yml b/projects/austria/docker-compose.yml index 8ffc4b65..1d518b3e 100644 --- a/projects/austria/docker-compose.yml +++ b/projects/austria/docker-compose.yml @@ -8,7 +8,7 @@ services: container_name: pelias_libpostal user: "${DOCKER_USER}" restart: always - ports: [ "4400:4400" ] + ports: [ "127.0.0.1:4400:4400" ] schema: image: pelias/schema:master container_name: pelias_schema @@ -21,7 +21,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "4000:4000" ] + ports: [ "127.0.0.1:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: @@ -30,7 +30,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4100" ] - ports: [ "4100:4100" ] + ports: [ "127.0.0.1:4100:4100" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -77,7 +77,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4300" ] - ports: [ "4300:4300" ] + ports: [ "127.0.0.1:4300:4300" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -87,7 +87,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4200" ] - ports: [ "4200:4200" ] + ports: [ "127.0.0.1:4200:4200" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -96,7 +96,7 @@ services: container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always - ports: [ "9200:9200", "9300:9300" ] + ports: [ "127.0.0.1:9200:9200", "127.0.0.1:9300:9300" ] volumes: - "./elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro" - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" diff --git a/projects/belgium/docker-compose.yml b/projects/belgium/docker-compose.yml index 8ffc4b65..1d518b3e 100644 --- a/projects/belgium/docker-compose.yml +++ b/projects/belgium/docker-compose.yml @@ -8,7 +8,7 @@ services: container_name: pelias_libpostal user: "${DOCKER_USER}" restart: always - ports: [ "4400:4400" ] + ports: [ "127.0.0.1:4400:4400" ] schema: image: pelias/schema:master container_name: pelias_schema @@ -21,7 +21,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "4000:4000" ] + ports: [ "127.0.0.1:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: @@ -30,7 +30,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4100" ] - ports: [ "4100:4100" ] + ports: [ "127.0.0.1:4100:4100" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -77,7 +77,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4300" ] - ports: [ "4300:4300" ] + ports: [ "127.0.0.1:4300:4300" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -87,7 +87,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4200" ] - ports: [ "4200:4200" ] + ports: [ "127.0.0.1:4200:4200" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -96,7 +96,7 @@ services: container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always - ports: [ "9200:9200", "9300:9300" ] + ports: [ "127.0.0.1:9200:9200", "127.0.0.1:9300:9300" ] volumes: - "./elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro" - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" diff --git a/projects/brazil/docker-compose.yml b/projects/brazil/docker-compose.yml index 729f5026..29d9263f 100644 --- a/projects/brazil/docker-compose.yml +++ b/projects/brazil/docker-compose.yml @@ -8,7 +8,7 @@ services: container_name: pelias_libpostal user: "${DOCKER_USER}" restart: always - ports: [ "4400:4400" ] + ports: [ "127.0.0.1:4400:4400" ] schema: image: pelias/schema:master container_name: pelias_schema @@ -21,7 +21,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "4000:4000" ] + ports: [ "127.0.0.1:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: @@ -30,7 +30,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4100" ] - ports: [ "4100:4100" ] + ports: [ "127.0.0.1:4100:4100" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -87,7 +87,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4300" ] - ports: [ "4300:4300" ] + ports: [ "127.0.0.1:4300:4300" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -97,7 +97,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4200" ] - ports: [ "4200:4200" ] + ports: [ "127.0.0.1:4200:4200" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -106,7 +106,7 @@ services: container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always - ports: [ "9200:9200", "9300:9300" ] + ports: [ "127.0.0.1:9200:9200", "127.0.0.1:9300:9300" ] volumes: - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" ulimits: diff --git a/projects/france/docker-compose.yml b/projects/france/docker-compose.yml index 8ffc4b65..1d518b3e 100644 --- a/projects/france/docker-compose.yml +++ b/projects/france/docker-compose.yml @@ -8,7 +8,7 @@ services: container_name: pelias_libpostal user: "${DOCKER_USER}" restart: always - ports: [ "4400:4400" ] + ports: [ "127.0.0.1:4400:4400" ] schema: image: pelias/schema:master container_name: pelias_schema @@ -21,7 +21,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "4000:4000" ] + ports: [ "127.0.0.1:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: @@ -30,7 +30,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4100" ] - ports: [ "4100:4100" ] + ports: [ "127.0.0.1:4100:4100" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -77,7 +77,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4300" ] - ports: [ "4300:4300" ] + ports: [ "127.0.0.1:4300:4300" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -87,7 +87,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4200" ] - ports: [ "4200:4200" ] + ports: [ "127.0.0.1:4200:4200" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -96,7 +96,7 @@ services: container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always - ports: [ "9200:9200", "9300:9300" ] + ports: [ "127.0.0.1:9200:9200", "127.0.0.1:9300:9300" ] volumes: - "./elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro" - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" diff --git a/projects/germany/docker-compose.yml b/projects/germany/docker-compose.yml index 8ffc4b65..1d518b3e 100644 --- a/projects/germany/docker-compose.yml +++ b/projects/germany/docker-compose.yml @@ -8,7 +8,7 @@ services: container_name: pelias_libpostal user: "${DOCKER_USER}" restart: always - ports: [ "4400:4400" ] + ports: [ "127.0.0.1:4400:4400" ] schema: image: pelias/schema:master container_name: pelias_schema @@ -21,7 +21,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "4000:4000" ] + ports: [ "127.0.0.1:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: @@ -30,7 +30,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4100" ] - ports: [ "4100:4100" ] + ports: [ "127.0.0.1:4100:4100" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -77,7 +77,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4300" ] - ports: [ "4300:4300" ] + ports: [ "127.0.0.1:4300:4300" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -87,7 +87,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4200" ] - ports: [ "4200:4200" ] + ports: [ "127.0.0.1:4200:4200" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -96,7 +96,7 @@ services: container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always - ports: [ "9200:9200", "9300:9300" ] + ports: [ "127.0.0.1:9200:9200", "127.0.0.1:9300:9300" ] volumes: - "./elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro" - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" diff --git a/projects/jamaica/docker-compose.yml b/projects/jamaica/docker-compose.yml index 729f5026..29d9263f 100644 --- a/projects/jamaica/docker-compose.yml +++ b/projects/jamaica/docker-compose.yml @@ -8,7 +8,7 @@ services: container_name: pelias_libpostal user: "${DOCKER_USER}" restart: always - ports: [ "4400:4400" ] + ports: [ "127.0.0.1:4400:4400" ] schema: image: pelias/schema:master container_name: pelias_schema @@ -21,7 +21,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "4000:4000" ] + ports: [ "127.0.0.1:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: @@ -30,7 +30,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4100" ] - ports: [ "4100:4100" ] + ports: [ "127.0.0.1:4100:4100" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -87,7 +87,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4300" ] - ports: [ "4300:4300" ] + ports: [ "127.0.0.1:4300:4300" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -97,7 +97,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4200" ] - ports: [ "4200:4200" ] + ports: [ "127.0.0.1:4200:4200" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -106,7 +106,7 @@ services: container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always - ports: [ "9200:9200", "9300:9300" ] + ports: [ "127.0.0.1:9200:9200", "127.0.0.1:9300:9300" ] volumes: - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" ulimits: diff --git a/projects/los-angeles-metro/docker-compose.yml b/projects/los-angeles-metro/docker-compose.yml index 78d61c9f..c1543a47 100644 --- a/projects/los-angeles-metro/docker-compose.yml +++ b/projects/los-angeles-metro/docker-compose.yml @@ -8,7 +8,7 @@ services: container_name: pelias_libpostal user: "${DOCKER_USER}" restart: always - ports: [ "4400:4400" ] + ports: [ "127.0.0.1:4400:4400" ] schema: image: pelias/schema:master container_name: pelias_schema @@ -23,7 +23,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "4000:4000" ] + ports: [ "127.0.0.1:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: @@ -32,7 +32,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4100" ] - ports: [ "4100:4100" ] + ports: [ "127.0.0.1:4100:4100" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -86,7 +86,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4300" ] - ports: [ "4300:4300" ] + ports: [ "127.0.0.1:4300:4300" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -96,7 +96,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4200" ] - ports: [ "4200:4200" ] + ports: [ "127.0.0.1:4200:4200" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -105,7 +105,7 @@ services: container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always - ports: [ "9200:9200", "9300:9300" ] + ports: [ "127.0.0.1:9200:9200", "127.0.0.1:9300:9300" ] volumes: - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" ulimits: diff --git a/projects/netherlands/docker-compose.yml b/projects/netherlands/docker-compose.yml index 8ffc4b65..1d518b3e 100644 --- a/projects/netherlands/docker-compose.yml +++ b/projects/netherlands/docker-compose.yml @@ -8,7 +8,7 @@ services: container_name: pelias_libpostal user: "${DOCKER_USER}" restart: always - ports: [ "4400:4400" ] + ports: [ "127.0.0.1:4400:4400" ] schema: image: pelias/schema:master container_name: pelias_schema @@ -21,7 +21,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "4000:4000" ] + ports: [ "127.0.0.1:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: @@ -30,7 +30,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4100" ] - ports: [ "4100:4100" ] + ports: [ "127.0.0.1:4100:4100" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -77,7 +77,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4300" ] - ports: [ "4300:4300" ] + ports: [ "127.0.0.1:4300:4300" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -87,7 +87,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4200" ] - ports: [ "4200:4200" ] + ports: [ "127.0.0.1:4200:4200" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -96,7 +96,7 @@ services: container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always - ports: [ "9200:9200", "9300:9300" ] + ports: [ "127.0.0.1:9200:9200", "127.0.0.1:9300:9300" ] volumes: - "./elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro" - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" diff --git a/projects/new-york-city/docker-compose.yml b/projects/new-york-city/docker-compose.yml index 66cbc559..49790aa6 100644 --- a/projects/new-york-city/docker-compose.yml +++ b/projects/new-york-city/docker-compose.yml @@ -8,7 +8,7 @@ services: container_name: pelias_libpostal user: "${DOCKER_USER}" restart: always - ports: [ "4400:4400" ] + ports: [ "127.0.0.1:4400:4400" ] schema: image: pelias/schema:master container_name: pelias_schema @@ -21,7 +21,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "4000:4000" ] + ports: [ "127.0.0.1:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: @@ -30,7 +30,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4100" ] - ports: [ "4100:4100" ] + ports: [ "127.0.0.1:4100:4100" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -95,7 +95,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4300" ] - ports: [ "4300:4300" ] + ports: [ "127.0.0.1:4300:4300" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -105,7 +105,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4200" ] - ports: [ "4200:4200" ] + ports: [ "127.0.0.1:4200:4200" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -114,7 +114,7 @@ services: container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always - ports: [ "9200:9200", "9300:9300" ] + ports: [ "127.0.0.1:9200:9200", "127.0.0.1:9300:9300" ] volumes: - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" ulimits: diff --git a/projects/north-america/docker-compose.yml b/projects/north-america/docker-compose.yml index a740a8d8..b2ca9d26 100644 --- a/projects/north-america/docker-compose.yml +++ b/projects/north-america/docker-compose.yml @@ -8,7 +8,7 @@ services: container_name: pelias_libpostal user: "${DOCKER_USER}" restart: always - ports: [ "4400:4400" ] + ports: [ "127.0.0.1:4400:4400" ] schema: image: pelias/schema:master container_name: pelias_schema @@ -21,7 +21,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "4000:4000" ] + ports: [ "127.0.0.1:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: @@ -30,7 +30,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4100" ] - ports: [ "4100:4100" ] + ports: [ "127.0.0.1:4100:4100" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -95,7 +95,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4300" ] - ports: [ "4300:4300" ] + ports: [ "127.0.0.1:4300:4300" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -105,7 +105,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4200" ] - ports: [ "4200:4200" ] + ports: [ "127.0.0.1:4200:4200" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -115,7 +115,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "ES_JAVA_OPTS=-Xmx8g" ] - ports: [ "9200:9200", "9300:9300" ] + ports: [ "127.0.0.1:9200:9200", "127.0.0.1:9300:9300" ] volumes: - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" ulimits: diff --git a/projects/norway/docker-compose.yml b/projects/norway/docker-compose.yml index 8ffc4b65..1d518b3e 100644 --- a/projects/norway/docker-compose.yml +++ b/projects/norway/docker-compose.yml @@ -8,7 +8,7 @@ services: container_name: pelias_libpostal user: "${DOCKER_USER}" restart: always - ports: [ "4400:4400" ] + ports: [ "127.0.0.1:4400:4400" ] schema: image: pelias/schema:master container_name: pelias_schema @@ -21,7 +21,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "4000:4000" ] + ports: [ "127.0.0.1:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: @@ -30,7 +30,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4100" ] - ports: [ "4100:4100" ] + ports: [ "127.0.0.1:4100:4100" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -77,7 +77,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4300" ] - ports: [ "4300:4300" ] + ports: [ "127.0.0.1:4300:4300" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -87,7 +87,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4200" ] - ports: [ "4200:4200" ] + ports: [ "127.0.0.1:4200:4200" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -96,7 +96,7 @@ services: container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always - ports: [ "9200:9200", "9300:9300" ] + ports: [ "127.0.0.1:9200:9200", "127.0.0.1:9300:9300" ] volumes: - "./elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro" - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" diff --git a/projects/planet/docker-compose.yml b/projects/planet/docker-compose.yml index a740a8d8..b2ca9d26 100644 --- a/projects/planet/docker-compose.yml +++ b/projects/planet/docker-compose.yml @@ -8,7 +8,7 @@ services: container_name: pelias_libpostal user: "${DOCKER_USER}" restart: always - ports: [ "4400:4400" ] + ports: [ "127.0.0.1:4400:4400" ] schema: image: pelias/schema:master container_name: pelias_schema @@ -21,7 +21,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "4000:4000" ] + ports: [ "127.0.0.1:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: @@ -30,7 +30,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4100" ] - ports: [ "4100:4100" ] + ports: [ "127.0.0.1:4100:4100" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -95,7 +95,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4300" ] - ports: [ "4300:4300" ] + ports: [ "127.0.0.1:4300:4300" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -105,7 +105,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4200" ] - ports: [ "4200:4200" ] + ports: [ "127.0.0.1:4200:4200" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -115,7 +115,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "ES_JAVA_OPTS=-Xmx8g" ] - ports: [ "9200:9200", "9300:9300" ] + ports: [ "127.0.0.1:9200:9200", "127.0.0.1:9300:9300" ] volumes: - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" ulimits: diff --git a/projects/poland/docker-compose.yml b/projects/poland/docker-compose.yml index 11239a4b..adf80d28 100644 --- a/projects/poland/docker-compose.yml +++ b/projects/poland/docker-compose.yml @@ -8,7 +8,7 @@ services: container_name: pelias_libpostal user: "${DOCKER_USER}" restart: always - ports: [ "4400:4400" ] + ports: [ "127.0.0.1:4400:4400" ] schema: image: pelias/schema:master container_name: pelias_schema @@ -21,7 +21,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "4000:4000" ] + ports: [ "127.0.0.1:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: @@ -30,7 +30,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4100" ] - ports: [ "4100:4100" ] + ports: [ "127.0.0.1:4100:4100" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -84,7 +84,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4300" ] - ports: [ "4300:4300" ] + ports: [ "127.0.0.1:4300:4300" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -94,7 +94,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4200" ] - ports: [ "4200:4200" ] + ports: [ "127.0.0.1:4200:4200" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -103,7 +103,7 @@ services: container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always - ports: [ "9200:9200", "9300:9300" ] + ports: [ "127.0.0.1:9200:9200", "127.0.0.1:9300:9300" ] volumes: - "./elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro" - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" diff --git a/projects/portland-metro/docker-compose.yml b/projects/portland-metro/docker-compose.yml index 729f5026..29d9263f 100644 --- a/projects/portland-metro/docker-compose.yml +++ b/projects/portland-metro/docker-compose.yml @@ -8,7 +8,7 @@ services: container_name: pelias_libpostal user: "${DOCKER_USER}" restart: always - ports: [ "4400:4400" ] + ports: [ "127.0.0.1:4400:4400" ] schema: image: pelias/schema:master container_name: pelias_schema @@ -21,7 +21,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "4000:4000" ] + ports: [ "127.0.0.1:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: @@ -30,7 +30,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4100" ] - ports: [ "4100:4100" ] + ports: [ "127.0.0.1:4100:4100" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -87,7 +87,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4300" ] - ports: [ "4300:4300" ] + ports: [ "127.0.0.1:4300:4300" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -97,7 +97,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4200" ] - ports: [ "4200:4200" ] + ports: [ "127.0.0.1:4200:4200" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -106,7 +106,7 @@ services: container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always - ports: [ "9200:9200", "9300:9300" ] + ports: [ "127.0.0.1:9200:9200", "127.0.0.1:9300:9300" ] volumes: - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" ulimits: diff --git a/projects/san-jose-metro/docker-compose.yml b/projects/san-jose-metro/docker-compose.yml index 78d61c9f..c1543a47 100644 --- a/projects/san-jose-metro/docker-compose.yml +++ b/projects/san-jose-metro/docker-compose.yml @@ -8,7 +8,7 @@ services: container_name: pelias_libpostal user: "${DOCKER_USER}" restart: always - ports: [ "4400:4400" ] + ports: [ "127.0.0.1:4400:4400" ] schema: image: pelias/schema:master container_name: pelias_schema @@ -23,7 +23,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "4000:4000" ] + ports: [ "127.0.0.1:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: @@ -32,7 +32,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4100" ] - ports: [ "4100:4100" ] + ports: [ "127.0.0.1:4100:4100" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -86,7 +86,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4300" ] - ports: [ "4300:4300" ] + ports: [ "127.0.0.1:4300:4300" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -96,7 +96,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4200" ] - ports: [ "4200:4200" ] + ports: [ "127.0.0.1:4200:4200" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -105,7 +105,7 @@ services: container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always - ports: [ "9200:9200", "9300:9300" ] + ports: [ "127.0.0.1:9200:9200", "127.0.0.1:9300:9300" ] volumes: - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" ulimits: diff --git a/projects/singapore/docker-compose.yml b/projects/singapore/docker-compose.yml index 0e3df03b..1bc92482 100644 --- a/projects/singapore/docker-compose.yml +++ b/projects/singapore/docker-compose.yml @@ -8,7 +8,7 @@ services: container_name: pelias_libpostal user: "${DOCKER_USER}" restart: always - ports: [ "4400:4400" ] + ports: [ "127.0.0.1:4400:4400" ] schema: image: pelias/schema:master container_name: pelias_schema @@ -21,7 +21,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "4000:4000" ] + ports: [ "127.0.0.1:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: @@ -30,7 +30,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4100" ] - ports: [ "4100:4100" ] + ports: [ "127.0.0.1:4100:4100" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -82,7 +82,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4300" ] - ports: [ "4300:4300" ] + ports: [ "127.0.0.1:4300:4300" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -92,7 +92,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4200" ] - ports: [ "4200:4200" ] + ports: [ "127.0.0.1:4200:4200" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -101,7 +101,7 @@ services: container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always - ports: [ "9200:9200", "9300:9300" ] + ports: [ "127.0.0.1:9200:9200", "127.0.0.1:9300:9300" ] volumes: - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" ulimits: diff --git a/projects/south-africa/docker-compose.yml b/projects/south-africa/docker-compose.yml index 29cda7ca..20d84314 100644 --- a/projects/south-africa/docker-compose.yml +++ b/projects/south-africa/docker-compose.yml @@ -8,7 +8,7 @@ services: container_name: pelias_libpostal user: "${DOCKER_USER}" restart: always - ports: [ "4400:4400" ] + ports: [ "127.0.0.1:4400:4400" ] schema: image: pelias/schema:master container_name: pelias_schema @@ -23,7 +23,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "4000:4000" ] + ports: [ "127.0.0.1:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: @@ -32,7 +32,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4100" ] - ports: [ "4100:4100" ] + ports: [ "127.0.0.1:4100:4100" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -87,7 +87,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4300" ] - ports: [ "4300:4300" ] + ports: [ "127.0.0.1:4300:4300" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -97,7 +97,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4200" ] - ports: [ "4200:4200" ] + ports: [ "127.0.0.1:4200:4200" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -105,7 +105,7 @@ services: image: nginx container_name: pelias_preview restart: always - ports: [ "3000:80" ] + ports: [ "127.0.0.1:3000:80" ] volumes: - "../../common/preview:/usr/share/nginx/html" elasticsearch: @@ -113,7 +113,7 @@ services: container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always - ports: [ "9200:9200", "9300:9300" ] + ports: [ "127.0.0.1:9200:9200", "127.0.0.1:9300:9300" ] volumes: - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" ulimits: diff --git a/projects/south-america/docker-compose.yml b/projects/south-america/docker-compose.yml index 729f5026..29d9263f 100644 --- a/projects/south-america/docker-compose.yml +++ b/projects/south-america/docker-compose.yml @@ -8,7 +8,7 @@ services: container_name: pelias_libpostal user: "${DOCKER_USER}" restart: always - ports: [ "4400:4400" ] + ports: [ "127.0.0.1:4400:4400" ] schema: image: pelias/schema:master container_name: pelias_schema @@ -21,7 +21,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "4000:4000" ] + ports: [ "127.0.0.1:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: @@ -30,7 +30,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4100" ] - ports: [ "4100:4100" ] + ports: [ "127.0.0.1:4100:4100" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -87,7 +87,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4300" ] - ports: [ "4300:4300" ] + ports: [ "127.0.0.1:4300:4300" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -97,7 +97,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4200" ] - ports: [ "4200:4200" ] + ports: [ "127.0.0.1:4200:4200" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -106,7 +106,7 @@ services: container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always - ports: [ "9200:9200", "9300:9300" ] + ports: [ "127.0.0.1:9200:9200", "127.0.0.1:9300:9300" ] volumes: - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" ulimits: diff --git a/projects/texas/docker-compose.yml b/projects/texas/docker-compose.yml index 967a9581..c35ffa1c 100644 --- a/projects/texas/docker-compose.yml +++ b/projects/texas/docker-compose.yml @@ -8,7 +8,7 @@ services: container_name: pelias_libpostal user: "${DOCKER_USER}" restart: always - ports: [ "4400:4400" ] + ports: [ "127.0.0.1:4400:4400" ] schema: image: pelias/schema:master container_name: pelias_schema @@ -23,7 +23,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "4000:4000" ] + ports: [ "127.0.0.1:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: @@ -32,7 +32,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4100" ] - ports: [ "4100:4100" ] + ports: [ "127.0.0.1:4100:4100" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -89,7 +89,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4300" ] - ports: [ "4300:4300" ] + ports: [ "127.0.0.1:4300:4300" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -99,7 +99,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4200" ] - ports: [ "4200:4200" ] + ports: [ "127.0.0.1:4200:4200" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -108,7 +108,7 @@ services: container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always - ports: [ "9200:9200", "9300:9300" ] + ports: [ "127.0.0.1:9200:9200", "127.0.0.1:9300:9300" ] volumes: - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" ulimits: From e380582caef0fe588d2a2a3586fa7f57d3ee78e4 Mon Sep 17 00:00:00 2001 From: Joshua McLauchlan Date: Fri, 12 Feb 2021 09:37:29 +1030 Subject: [PATCH 52/98] Improved docker container broacast port ip to include all internal ip's using 0.0.0.0 --- projects/australia/docker-compose.yml | 12 ++++++------ projects/austria/docker-compose.yml | 12 ++++++------ projects/belgium/docker-compose.yml | 12 ++++++------ projects/brazil/docker-compose.yml | 12 ++++++------ projects/france/docker-compose.yml | 12 ++++++------ projects/germany/docker-compose.yml | 12 ++++++------ projects/jamaica/docker-compose.yml | 12 ++++++------ projects/los-angeles-metro/docker-compose.yml | 12 ++++++------ projects/netherlands/docker-compose.yml | 12 ++++++------ projects/new-york-city/docker-compose.yml | 12 ++++++------ projects/north-america/docker-compose.yml | 12 ++++++------ projects/norway/docker-compose.yml | 12 ++++++------ projects/planet/docker-compose.yml | 12 ++++++------ projects/poland/docker-compose.yml | 12 ++++++------ projects/portland-metro/docker-compose.yml | 12 ++++++------ projects/san-jose-metro/docker-compose.yml | 12 ++++++------ projects/singapore/docker-compose.yml | 12 ++++++------ projects/south-africa/docker-compose.yml | 14 +++++++------- projects/south-america/docker-compose.yml | 12 ++++++------ projects/texas/docker-compose.yml | 12 ++++++------ 20 files changed, 121 insertions(+), 121 deletions(-) diff --git a/projects/australia/docker-compose.yml b/projects/australia/docker-compose.yml index 6544177e..d5eda9a8 100644 --- a/projects/australia/docker-compose.yml +++ b/projects/australia/docker-compose.yml @@ -8,7 +8,7 @@ services: container_name: pelias_libpostal user: "${DOCKER_USER}" restart: always - ports: [ "127.0.0.1:4400:4400" ] + ports: [ "0.0.0.0:4400:4400" ] schema: image: pelias/schema:master container_name: pelias_schema @@ -21,7 +21,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "127.0.0.1:4000:4000" ] + ports: [ "0.0.0.0:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: @@ -30,7 +30,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4100" ] - ports: [ "127.0.0.1:4100:4100" ] + ports: [ "0.0.0.0:4100:4100" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -103,7 +103,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4300" ] - ports: [ "127.0.0.1:4300:4300" ] + ports: [ "0.0.0.0:4300:4300" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -113,7 +113,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4200" ] - ports: [ "127.0.0.1:4200:4200" ] + ports: [ "0.0.0.0:4200:4200" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -122,7 +122,7 @@ services: container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always - ports: [ "127.0.0.1:9200:9200", "127.0.0.1:9300:9300" ] + ports: [ "0.0.0.0:9200:9200", "0.0.0.0:9300:9300" ] volumes: - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" ulimits: diff --git a/projects/austria/docker-compose.yml b/projects/austria/docker-compose.yml index 1d518b3e..dd19e3af 100644 --- a/projects/austria/docker-compose.yml +++ b/projects/austria/docker-compose.yml @@ -8,7 +8,7 @@ services: container_name: pelias_libpostal user: "${DOCKER_USER}" restart: always - ports: [ "127.0.0.1:4400:4400" ] + ports: [ "0.0.0.0:4400:4400" ] schema: image: pelias/schema:master container_name: pelias_schema @@ -21,7 +21,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "127.0.0.1:4000:4000" ] + ports: [ "0.0.0.0:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: @@ -30,7 +30,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4100" ] - ports: [ "127.0.0.1:4100:4100" ] + ports: [ "0.0.0.0:4100:4100" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -77,7 +77,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4300" ] - ports: [ "127.0.0.1:4300:4300" ] + ports: [ "0.0.0.0:4300:4300" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -87,7 +87,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4200" ] - ports: [ "127.0.0.1:4200:4200" ] + ports: [ "0.0.0.0:4200:4200" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -96,7 +96,7 @@ services: container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always - ports: [ "127.0.0.1:9200:9200", "127.0.0.1:9300:9300" ] + ports: [ "0.0.0.0:9200:9200", "0.0.0.0:9300:9300" ] volumes: - "./elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro" - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" diff --git a/projects/belgium/docker-compose.yml b/projects/belgium/docker-compose.yml index 1d518b3e..dd19e3af 100644 --- a/projects/belgium/docker-compose.yml +++ b/projects/belgium/docker-compose.yml @@ -8,7 +8,7 @@ services: container_name: pelias_libpostal user: "${DOCKER_USER}" restart: always - ports: [ "127.0.0.1:4400:4400" ] + ports: [ "0.0.0.0:4400:4400" ] schema: image: pelias/schema:master container_name: pelias_schema @@ -21,7 +21,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "127.0.0.1:4000:4000" ] + ports: [ "0.0.0.0:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: @@ -30,7 +30,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4100" ] - ports: [ "127.0.0.1:4100:4100" ] + ports: [ "0.0.0.0:4100:4100" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -77,7 +77,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4300" ] - ports: [ "127.0.0.1:4300:4300" ] + ports: [ "0.0.0.0:4300:4300" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -87,7 +87,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4200" ] - ports: [ "127.0.0.1:4200:4200" ] + ports: [ "0.0.0.0:4200:4200" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -96,7 +96,7 @@ services: container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always - ports: [ "127.0.0.1:9200:9200", "127.0.0.1:9300:9300" ] + ports: [ "0.0.0.0:9200:9200", "0.0.0.0:9300:9300" ] volumes: - "./elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro" - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" diff --git a/projects/brazil/docker-compose.yml b/projects/brazil/docker-compose.yml index 29d9263f..c208efe3 100644 --- a/projects/brazil/docker-compose.yml +++ b/projects/brazil/docker-compose.yml @@ -8,7 +8,7 @@ services: container_name: pelias_libpostal user: "${DOCKER_USER}" restart: always - ports: [ "127.0.0.1:4400:4400" ] + ports: [ "0.0.0.0:4400:4400" ] schema: image: pelias/schema:master container_name: pelias_schema @@ -21,7 +21,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "127.0.0.1:4000:4000" ] + ports: [ "0.0.0.0:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: @@ -30,7 +30,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4100" ] - ports: [ "127.0.0.1:4100:4100" ] + ports: [ "0.0.0.0:4100:4100" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -87,7 +87,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4300" ] - ports: [ "127.0.0.1:4300:4300" ] + ports: [ "0.0.0.0:4300:4300" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -97,7 +97,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4200" ] - ports: [ "127.0.0.1:4200:4200" ] + ports: [ "0.0.0.0:4200:4200" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -106,7 +106,7 @@ services: container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always - ports: [ "127.0.0.1:9200:9200", "127.0.0.1:9300:9300" ] + ports: [ "0.0.0.0:9200:9200", "0.0.0.0:9300:9300" ] volumes: - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" ulimits: diff --git a/projects/france/docker-compose.yml b/projects/france/docker-compose.yml index 1d518b3e..dd19e3af 100644 --- a/projects/france/docker-compose.yml +++ b/projects/france/docker-compose.yml @@ -8,7 +8,7 @@ services: container_name: pelias_libpostal user: "${DOCKER_USER}" restart: always - ports: [ "127.0.0.1:4400:4400" ] + ports: [ "0.0.0.0:4400:4400" ] schema: image: pelias/schema:master container_name: pelias_schema @@ -21,7 +21,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "127.0.0.1:4000:4000" ] + ports: [ "0.0.0.0:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: @@ -30,7 +30,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4100" ] - ports: [ "127.0.0.1:4100:4100" ] + ports: [ "0.0.0.0:4100:4100" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -77,7 +77,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4300" ] - ports: [ "127.0.0.1:4300:4300" ] + ports: [ "0.0.0.0:4300:4300" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -87,7 +87,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4200" ] - ports: [ "127.0.0.1:4200:4200" ] + ports: [ "0.0.0.0:4200:4200" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -96,7 +96,7 @@ services: container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always - ports: [ "127.0.0.1:9200:9200", "127.0.0.1:9300:9300" ] + ports: [ "0.0.0.0:9200:9200", "0.0.0.0:9300:9300" ] volumes: - "./elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro" - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" diff --git a/projects/germany/docker-compose.yml b/projects/germany/docker-compose.yml index 1d518b3e..dd19e3af 100644 --- a/projects/germany/docker-compose.yml +++ b/projects/germany/docker-compose.yml @@ -8,7 +8,7 @@ services: container_name: pelias_libpostal user: "${DOCKER_USER}" restart: always - ports: [ "127.0.0.1:4400:4400" ] + ports: [ "0.0.0.0:4400:4400" ] schema: image: pelias/schema:master container_name: pelias_schema @@ -21,7 +21,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "127.0.0.1:4000:4000" ] + ports: [ "0.0.0.0:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: @@ -30,7 +30,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4100" ] - ports: [ "127.0.0.1:4100:4100" ] + ports: [ "0.0.0.0:4100:4100" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -77,7 +77,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4300" ] - ports: [ "127.0.0.1:4300:4300" ] + ports: [ "0.0.0.0:4300:4300" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -87,7 +87,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4200" ] - ports: [ "127.0.0.1:4200:4200" ] + ports: [ "0.0.0.0:4200:4200" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -96,7 +96,7 @@ services: container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always - ports: [ "127.0.0.1:9200:9200", "127.0.0.1:9300:9300" ] + ports: [ "0.0.0.0:9200:9200", "0.0.0.0:9300:9300" ] volumes: - "./elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro" - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" diff --git a/projects/jamaica/docker-compose.yml b/projects/jamaica/docker-compose.yml index 29d9263f..c208efe3 100644 --- a/projects/jamaica/docker-compose.yml +++ b/projects/jamaica/docker-compose.yml @@ -8,7 +8,7 @@ services: container_name: pelias_libpostal user: "${DOCKER_USER}" restart: always - ports: [ "127.0.0.1:4400:4400" ] + ports: [ "0.0.0.0:4400:4400" ] schema: image: pelias/schema:master container_name: pelias_schema @@ -21,7 +21,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "127.0.0.1:4000:4000" ] + ports: [ "0.0.0.0:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: @@ -30,7 +30,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4100" ] - ports: [ "127.0.0.1:4100:4100" ] + ports: [ "0.0.0.0:4100:4100" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -87,7 +87,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4300" ] - ports: [ "127.0.0.1:4300:4300" ] + ports: [ "0.0.0.0:4300:4300" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -97,7 +97,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4200" ] - ports: [ "127.0.0.1:4200:4200" ] + ports: [ "0.0.0.0:4200:4200" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -106,7 +106,7 @@ services: container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always - ports: [ "127.0.0.1:9200:9200", "127.0.0.1:9300:9300" ] + ports: [ "0.0.0.0:9200:9200", "0.0.0.0:9300:9300" ] volumes: - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" ulimits: diff --git a/projects/los-angeles-metro/docker-compose.yml b/projects/los-angeles-metro/docker-compose.yml index c1543a47..520b841d 100644 --- a/projects/los-angeles-metro/docker-compose.yml +++ b/projects/los-angeles-metro/docker-compose.yml @@ -8,7 +8,7 @@ services: container_name: pelias_libpostal user: "${DOCKER_USER}" restart: always - ports: [ "127.0.0.1:4400:4400" ] + ports: [ "0.0.0.0:4400:4400" ] schema: image: pelias/schema:master container_name: pelias_schema @@ -23,7 +23,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "127.0.0.1:4000:4000" ] + ports: [ "0.0.0.0:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: @@ -32,7 +32,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4100" ] - ports: [ "127.0.0.1:4100:4100" ] + ports: [ "0.0.0.0:4100:4100" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -86,7 +86,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4300" ] - ports: [ "127.0.0.1:4300:4300" ] + ports: [ "0.0.0.0:4300:4300" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -96,7 +96,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4200" ] - ports: [ "127.0.0.1:4200:4200" ] + ports: [ "0.0.0.0:4200:4200" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -105,7 +105,7 @@ services: container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always - ports: [ "127.0.0.1:9200:9200", "127.0.0.1:9300:9300" ] + ports: [ "0.0.0.0:9200:9200", "0.0.0.0:9300:9300" ] volumes: - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" ulimits: diff --git a/projects/netherlands/docker-compose.yml b/projects/netherlands/docker-compose.yml index 1d518b3e..dd19e3af 100644 --- a/projects/netherlands/docker-compose.yml +++ b/projects/netherlands/docker-compose.yml @@ -8,7 +8,7 @@ services: container_name: pelias_libpostal user: "${DOCKER_USER}" restart: always - ports: [ "127.0.0.1:4400:4400" ] + ports: [ "0.0.0.0:4400:4400" ] schema: image: pelias/schema:master container_name: pelias_schema @@ -21,7 +21,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "127.0.0.1:4000:4000" ] + ports: [ "0.0.0.0:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: @@ -30,7 +30,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4100" ] - ports: [ "127.0.0.1:4100:4100" ] + ports: [ "0.0.0.0:4100:4100" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -77,7 +77,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4300" ] - ports: [ "127.0.0.1:4300:4300" ] + ports: [ "0.0.0.0:4300:4300" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -87,7 +87,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4200" ] - ports: [ "127.0.0.1:4200:4200" ] + ports: [ "0.0.0.0:4200:4200" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -96,7 +96,7 @@ services: container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always - ports: [ "127.0.0.1:9200:9200", "127.0.0.1:9300:9300" ] + ports: [ "0.0.0.0:9200:9200", "0.0.0.0:9300:9300" ] volumes: - "./elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro" - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" diff --git a/projects/new-york-city/docker-compose.yml b/projects/new-york-city/docker-compose.yml index 49790aa6..80f30b9d 100644 --- a/projects/new-york-city/docker-compose.yml +++ b/projects/new-york-city/docker-compose.yml @@ -8,7 +8,7 @@ services: container_name: pelias_libpostal user: "${DOCKER_USER}" restart: always - ports: [ "127.0.0.1:4400:4400" ] + ports: [ "0.0.0.0:4400:4400" ] schema: image: pelias/schema:master container_name: pelias_schema @@ -21,7 +21,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "127.0.0.1:4000:4000" ] + ports: [ "0.0.0.0:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: @@ -30,7 +30,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4100" ] - ports: [ "127.0.0.1:4100:4100" ] + ports: [ "0.0.0.0:4100:4100" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -95,7 +95,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4300" ] - ports: [ "127.0.0.1:4300:4300" ] + ports: [ "0.0.0.0:4300:4300" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -105,7 +105,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4200" ] - ports: [ "127.0.0.1:4200:4200" ] + ports: [ "0.0.0.0:4200:4200" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -114,7 +114,7 @@ services: container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always - ports: [ "127.0.0.1:9200:9200", "127.0.0.1:9300:9300" ] + ports: [ "0.0.0.0:9200:9200", "0.0.0.0:9300:9300" ] volumes: - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" ulimits: diff --git a/projects/north-america/docker-compose.yml b/projects/north-america/docker-compose.yml index b2ca9d26..f216bb6e 100644 --- a/projects/north-america/docker-compose.yml +++ b/projects/north-america/docker-compose.yml @@ -8,7 +8,7 @@ services: container_name: pelias_libpostal user: "${DOCKER_USER}" restart: always - ports: [ "127.0.0.1:4400:4400" ] + ports: [ "0.0.0.0:4400:4400" ] schema: image: pelias/schema:master container_name: pelias_schema @@ -21,7 +21,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "127.0.0.1:4000:4000" ] + ports: [ "0.0.0.0:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: @@ -30,7 +30,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4100" ] - ports: [ "127.0.0.1:4100:4100" ] + ports: [ "0.0.0.0:4100:4100" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -95,7 +95,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4300" ] - ports: [ "127.0.0.1:4300:4300" ] + ports: [ "0.0.0.0:4300:4300" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -105,7 +105,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4200" ] - ports: [ "127.0.0.1:4200:4200" ] + ports: [ "0.0.0.0:4200:4200" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -115,7 +115,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "ES_JAVA_OPTS=-Xmx8g" ] - ports: [ "127.0.0.1:9200:9200", "127.0.0.1:9300:9300" ] + ports: [ "0.0.0.0:9200:9200", "0.0.0.0:9300:9300" ] volumes: - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" ulimits: diff --git a/projects/norway/docker-compose.yml b/projects/norway/docker-compose.yml index 1d518b3e..dd19e3af 100644 --- a/projects/norway/docker-compose.yml +++ b/projects/norway/docker-compose.yml @@ -8,7 +8,7 @@ services: container_name: pelias_libpostal user: "${DOCKER_USER}" restart: always - ports: [ "127.0.0.1:4400:4400" ] + ports: [ "0.0.0.0:4400:4400" ] schema: image: pelias/schema:master container_name: pelias_schema @@ -21,7 +21,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "127.0.0.1:4000:4000" ] + ports: [ "0.0.0.0:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: @@ -30,7 +30,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4100" ] - ports: [ "127.0.0.1:4100:4100" ] + ports: [ "0.0.0.0:4100:4100" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -77,7 +77,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4300" ] - ports: [ "127.0.0.1:4300:4300" ] + ports: [ "0.0.0.0:4300:4300" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -87,7 +87,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4200" ] - ports: [ "127.0.0.1:4200:4200" ] + ports: [ "0.0.0.0:4200:4200" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -96,7 +96,7 @@ services: container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always - ports: [ "127.0.0.1:9200:9200", "127.0.0.1:9300:9300" ] + ports: [ "0.0.0.0:9200:9200", "0.0.0.0:9300:9300" ] volumes: - "./elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro" - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" diff --git a/projects/planet/docker-compose.yml b/projects/planet/docker-compose.yml index b2ca9d26..f216bb6e 100644 --- a/projects/planet/docker-compose.yml +++ b/projects/planet/docker-compose.yml @@ -8,7 +8,7 @@ services: container_name: pelias_libpostal user: "${DOCKER_USER}" restart: always - ports: [ "127.0.0.1:4400:4400" ] + ports: [ "0.0.0.0:4400:4400" ] schema: image: pelias/schema:master container_name: pelias_schema @@ -21,7 +21,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "127.0.0.1:4000:4000" ] + ports: [ "0.0.0.0:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: @@ -30,7 +30,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4100" ] - ports: [ "127.0.0.1:4100:4100" ] + ports: [ "0.0.0.0:4100:4100" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -95,7 +95,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4300" ] - ports: [ "127.0.0.1:4300:4300" ] + ports: [ "0.0.0.0:4300:4300" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -105,7 +105,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4200" ] - ports: [ "127.0.0.1:4200:4200" ] + ports: [ "0.0.0.0:4200:4200" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -115,7 +115,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "ES_JAVA_OPTS=-Xmx8g" ] - ports: [ "127.0.0.1:9200:9200", "127.0.0.1:9300:9300" ] + ports: [ "0.0.0.0:9200:9200", "0.0.0.0:9300:9300" ] volumes: - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" ulimits: diff --git a/projects/poland/docker-compose.yml b/projects/poland/docker-compose.yml index adf80d28..fd242cb4 100644 --- a/projects/poland/docker-compose.yml +++ b/projects/poland/docker-compose.yml @@ -8,7 +8,7 @@ services: container_name: pelias_libpostal user: "${DOCKER_USER}" restart: always - ports: [ "127.0.0.1:4400:4400" ] + ports: [ "0.0.0.0:4400:4400" ] schema: image: pelias/schema:master container_name: pelias_schema @@ -21,7 +21,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "127.0.0.1:4000:4000" ] + ports: [ "0.0.0.0:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: @@ -30,7 +30,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4100" ] - ports: [ "127.0.0.1:4100:4100" ] + ports: [ "0.0.0.0:4100:4100" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -84,7 +84,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4300" ] - ports: [ "127.0.0.1:4300:4300" ] + ports: [ "0.0.0.0:4300:4300" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -94,7 +94,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4200" ] - ports: [ "127.0.0.1:4200:4200" ] + ports: [ "0.0.0.0:4200:4200" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -103,7 +103,7 @@ services: container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always - ports: [ "127.0.0.1:9200:9200", "127.0.0.1:9300:9300" ] + ports: [ "0.0.0.0:9200:9200", "0.0.0.0:9300:9300" ] volumes: - "./elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro" - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" diff --git a/projects/portland-metro/docker-compose.yml b/projects/portland-metro/docker-compose.yml index 29d9263f..c208efe3 100644 --- a/projects/portland-metro/docker-compose.yml +++ b/projects/portland-metro/docker-compose.yml @@ -8,7 +8,7 @@ services: container_name: pelias_libpostal user: "${DOCKER_USER}" restart: always - ports: [ "127.0.0.1:4400:4400" ] + ports: [ "0.0.0.0:4400:4400" ] schema: image: pelias/schema:master container_name: pelias_schema @@ -21,7 +21,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "127.0.0.1:4000:4000" ] + ports: [ "0.0.0.0:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: @@ -30,7 +30,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4100" ] - ports: [ "127.0.0.1:4100:4100" ] + ports: [ "0.0.0.0:4100:4100" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -87,7 +87,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4300" ] - ports: [ "127.0.0.1:4300:4300" ] + ports: [ "0.0.0.0:4300:4300" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -97,7 +97,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4200" ] - ports: [ "127.0.0.1:4200:4200" ] + ports: [ "0.0.0.0:4200:4200" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -106,7 +106,7 @@ services: container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always - ports: [ "127.0.0.1:9200:9200", "127.0.0.1:9300:9300" ] + ports: [ "0.0.0.0:9200:9200", "0.0.0.0:9300:9300" ] volumes: - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" ulimits: diff --git a/projects/san-jose-metro/docker-compose.yml b/projects/san-jose-metro/docker-compose.yml index c1543a47..520b841d 100644 --- a/projects/san-jose-metro/docker-compose.yml +++ b/projects/san-jose-metro/docker-compose.yml @@ -8,7 +8,7 @@ services: container_name: pelias_libpostal user: "${DOCKER_USER}" restart: always - ports: [ "127.0.0.1:4400:4400" ] + ports: [ "0.0.0.0:4400:4400" ] schema: image: pelias/schema:master container_name: pelias_schema @@ -23,7 +23,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "127.0.0.1:4000:4000" ] + ports: [ "0.0.0.0:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: @@ -32,7 +32,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4100" ] - ports: [ "127.0.0.1:4100:4100" ] + ports: [ "0.0.0.0:4100:4100" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -86,7 +86,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4300" ] - ports: [ "127.0.0.1:4300:4300" ] + ports: [ "0.0.0.0:4300:4300" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -96,7 +96,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4200" ] - ports: [ "127.0.0.1:4200:4200" ] + ports: [ "0.0.0.0:4200:4200" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -105,7 +105,7 @@ services: container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always - ports: [ "127.0.0.1:9200:9200", "127.0.0.1:9300:9300" ] + ports: [ "0.0.0.0:9200:9200", "0.0.0.0:9300:9300" ] volumes: - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" ulimits: diff --git a/projects/singapore/docker-compose.yml b/projects/singapore/docker-compose.yml index 1bc92482..9b05a1c8 100644 --- a/projects/singapore/docker-compose.yml +++ b/projects/singapore/docker-compose.yml @@ -8,7 +8,7 @@ services: container_name: pelias_libpostal user: "${DOCKER_USER}" restart: always - ports: [ "127.0.0.1:4400:4400" ] + ports: [ "0.0.0.0:4400:4400" ] schema: image: pelias/schema:master container_name: pelias_schema @@ -21,7 +21,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "127.0.0.1:4000:4000" ] + ports: [ "0.0.0.0:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: @@ -30,7 +30,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4100" ] - ports: [ "127.0.0.1:4100:4100" ] + ports: [ "0.0.0.0:4100:4100" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -82,7 +82,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4300" ] - ports: [ "127.0.0.1:4300:4300" ] + ports: [ "0.0.0.0:4300:4300" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -92,7 +92,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4200" ] - ports: [ "127.0.0.1:4200:4200" ] + ports: [ "0.0.0.0:4200:4200" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -101,7 +101,7 @@ services: container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always - ports: [ "127.0.0.1:9200:9200", "127.0.0.1:9300:9300" ] + ports: [ "0.0.0.0:9200:9200", "0.0.0.0:9300:9300" ] volumes: - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" ulimits: diff --git a/projects/south-africa/docker-compose.yml b/projects/south-africa/docker-compose.yml index 20d84314..1e94d167 100644 --- a/projects/south-africa/docker-compose.yml +++ b/projects/south-africa/docker-compose.yml @@ -8,7 +8,7 @@ services: container_name: pelias_libpostal user: "${DOCKER_USER}" restart: always - ports: [ "127.0.0.1:4400:4400" ] + ports: [ "0.0.0.0:4400:4400" ] schema: image: pelias/schema:master container_name: pelias_schema @@ -23,7 +23,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "127.0.0.1:4000:4000" ] + ports: [ "0.0.0.0:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: @@ -32,7 +32,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4100" ] - ports: [ "127.0.0.1:4100:4100" ] + ports: [ "0.0.0.0:4100:4100" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -87,7 +87,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4300" ] - ports: [ "127.0.0.1:4300:4300" ] + ports: [ "0.0.0.0:4300:4300" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -97,7 +97,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4200" ] - ports: [ "127.0.0.1:4200:4200" ] + ports: [ "0.0.0.0:4200:4200" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -105,7 +105,7 @@ services: image: nginx container_name: pelias_preview restart: always - ports: [ "127.0.0.1:3000:80" ] + ports: [ "0.0.0.0:3000:80" ] volumes: - "../../common/preview:/usr/share/nginx/html" elasticsearch: @@ -113,7 +113,7 @@ services: container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always - ports: [ "127.0.0.1:9200:9200", "127.0.0.1:9300:9300" ] + ports: [ "0.0.0.0:9200:9200", "0.0.0.0:9300:9300" ] volumes: - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" ulimits: diff --git a/projects/south-america/docker-compose.yml b/projects/south-america/docker-compose.yml index 29d9263f..c208efe3 100644 --- a/projects/south-america/docker-compose.yml +++ b/projects/south-america/docker-compose.yml @@ -8,7 +8,7 @@ services: container_name: pelias_libpostal user: "${DOCKER_USER}" restart: always - ports: [ "127.0.0.1:4400:4400" ] + ports: [ "0.0.0.0:4400:4400" ] schema: image: pelias/schema:master container_name: pelias_schema @@ -21,7 +21,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "127.0.0.1:4000:4000" ] + ports: [ "0.0.0.0:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: @@ -30,7 +30,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4100" ] - ports: [ "127.0.0.1:4100:4100" ] + ports: [ "0.0.0.0:4100:4100" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -87,7 +87,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4300" ] - ports: [ "127.0.0.1:4300:4300" ] + ports: [ "0.0.0.0:4300:4300" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -97,7 +97,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4200" ] - ports: [ "127.0.0.1:4200:4200" ] + ports: [ "0.0.0.0:4200:4200" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -106,7 +106,7 @@ services: container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always - ports: [ "127.0.0.1:9200:9200", "127.0.0.1:9300:9300" ] + ports: [ "0.0.0.0:9200:9200", "0.0.0.0:9300:9300" ] volumes: - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" ulimits: diff --git a/projects/texas/docker-compose.yml b/projects/texas/docker-compose.yml index c35ffa1c..8682d9d3 100644 --- a/projects/texas/docker-compose.yml +++ b/projects/texas/docker-compose.yml @@ -8,7 +8,7 @@ services: container_name: pelias_libpostal user: "${DOCKER_USER}" restart: always - ports: [ "127.0.0.1:4400:4400" ] + ports: [ "0.0.0.0:4400:4400" ] schema: image: pelias/schema:master container_name: pelias_schema @@ -23,7 +23,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "127.0.0.1:4000:4000" ] + ports: [ "0.0.0.0:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: @@ -32,7 +32,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4100" ] - ports: [ "127.0.0.1:4100:4100" ] + ports: [ "0.0.0.0:4100:4100" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -89,7 +89,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4300" ] - ports: [ "127.0.0.1:4300:4300" ] + ports: [ "0.0.0.0:4300:4300" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -99,7 +99,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4200" ] - ports: [ "127.0.0.1:4200:4200" ] + ports: [ "0.0.0.0:4200:4200" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -108,7 +108,7 @@ services: container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always - ports: [ "127.0.0.1:9200:9200", "127.0.0.1:9300:9300" ] + ports: [ "0.0.0.0:9200:9200", "0.0.0.0:9300:9300" ] volumes: - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" ulimits: From 70bd34227cb5b4b88f3425104a14525fc9033bf9 Mon Sep 17 00:00:00 2001 From: Joshua McLauchlan Date: Fri, 12 Feb 2021 09:51:08 +1030 Subject: [PATCH 53/98] Revert "Improved docker container broacast port ip to include all internal ip's using 0.0.0.0" This reverts commit e380582caef0fe588d2a2a3586fa7f57d3ee78e4. --- projects/australia/docker-compose.yml | 12 ++++++------ projects/austria/docker-compose.yml | 12 ++++++------ projects/belgium/docker-compose.yml | 12 ++++++------ projects/brazil/docker-compose.yml | 12 ++++++------ projects/france/docker-compose.yml | 12 ++++++------ projects/germany/docker-compose.yml | 12 ++++++------ projects/jamaica/docker-compose.yml | 12 ++++++------ projects/los-angeles-metro/docker-compose.yml | 12 ++++++------ projects/netherlands/docker-compose.yml | 12 ++++++------ projects/new-york-city/docker-compose.yml | 12 ++++++------ projects/north-america/docker-compose.yml | 12 ++++++------ projects/norway/docker-compose.yml | 12 ++++++------ projects/planet/docker-compose.yml | 12 ++++++------ projects/poland/docker-compose.yml | 12 ++++++------ projects/portland-metro/docker-compose.yml | 12 ++++++------ projects/san-jose-metro/docker-compose.yml | 12 ++++++------ projects/singapore/docker-compose.yml | 12 ++++++------ projects/south-africa/docker-compose.yml | 14 +++++++------- projects/south-america/docker-compose.yml | 12 ++++++------ projects/texas/docker-compose.yml | 12 ++++++------ 20 files changed, 121 insertions(+), 121 deletions(-) diff --git a/projects/australia/docker-compose.yml b/projects/australia/docker-compose.yml index d5eda9a8..6544177e 100644 --- a/projects/australia/docker-compose.yml +++ b/projects/australia/docker-compose.yml @@ -8,7 +8,7 @@ services: container_name: pelias_libpostal user: "${DOCKER_USER}" restart: always - ports: [ "0.0.0.0:4400:4400" ] + ports: [ "127.0.0.1:4400:4400" ] schema: image: pelias/schema:master container_name: pelias_schema @@ -21,7 +21,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "0.0.0.0:4000:4000" ] + ports: [ "127.0.0.1:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: @@ -30,7 +30,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4100" ] - ports: [ "0.0.0.0:4100:4100" ] + ports: [ "127.0.0.1:4100:4100" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -103,7 +103,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4300" ] - ports: [ "0.0.0.0:4300:4300" ] + ports: [ "127.0.0.1:4300:4300" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -113,7 +113,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4200" ] - ports: [ "0.0.0.0:4200:4200" ] + ports: [ "127.0.0.1:4200:4200" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -122,7 +122,7 @@ services: container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always - ports: [ "0.0.0.0:9200:9200", "0.0.0.0:9300:9300" ] + ports: [ "127.0.0.1:9200:9200", "127.0.0.1:9300:9300" ] volumes: - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" ulimits: diff --git a/projects/austria/docker-compose.yml b/projects/austria/docker-compose.yml index dd19e3af..1d518b3e 100644 --- a/projects/austria/docker-compose.yml +++ b/projects/austria/docker-compose.yml @@ -8,7 +8,7 @@ services: container_name: pelias_libpostal user: "${DOCKER_USER}" restart: always - ports: [ "0.0.0.0:4400:4400" ] + ports: [ "127.0.0.1:4400:4400" ] schema: image: pelias/schema:master container_name: pelias_schema @@ -21,7 +21,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "0.0.0.0:4000:4000" ] + ports: [ "127.0.0.1:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: @@ -30,7 +30,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4100" ] - ports: [ "0.0.0.0:4100:4100" ] + ports: [ "127.0.0.1:4100:4100" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -77,7 +77,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4300" ] - ports: [ "0.0.0.0:4300:4300" ] + ports: [ "127.0.0.1:4300:4300" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -87,7 +87,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4200" ] - ports: [ "0.0.0.0:4200:4200" ] + ports: [ "127.0.0.1:4200:4200" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -96,7 +96,7 @@ services: container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always - ports: [ "0.0.0.0:9200:9200", "0.0.0.0:9300:9300" ] + ports: [ "127.0.0.1:9200:9200", "127.0.0.1:9300:9300" ] volumes: - "./elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro" - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" diff --git a/projects/belgium/docker-compose.yml b/projects/belgium/docker-compose.yml index dd19e3af..1d518b3e 100644 --- a/projects/belgium/docker-compose.yml +++ b/projects/belgium/docker-compose.yml @@ -8,7 +8,7 @@ services: container_name: pelias_libpostal user: "${DOCKER_USER}" restart: always - ports: [ "0.0.0.0:4400:4400" ] + ports: [ "127.0.0.1:4400:4400" ] schema: image: pelias/schema:master container_name: pelias_schema @@ -21,7 +21,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "0.0.0.0:4000:4000" ] + ports: [ "127.0.0.1:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: @@ -30,7 +30,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4100" ] - ports: [ "0.0.0.0:4100:4100" ] + ports: [ "127.0.0.1:4100:4100" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -77,7 +77,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4300" ] - ports: [ "0.0.0.0:4300:4300" ] + ports: [ "127.0.0.1:4300:4300" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -87,7 +87,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4200" ] - ports: [ "0.0.0.0:4200:4200" ] + ports: [ "127.0.0.1:4200:4200" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -96,7 +96,7 @@ services: container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always - ports: [ "0.0.0.0:9200:9200", "0.0.0.0:9300:9300" ] + ports: [ "127.0.0.1:9200:9200", "127.0.0.1:9300:9300" ] volumes: - "./elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro" - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" diff --git a/projects/brazil/docker-compose.yml b/projects/brazil/docker-compose.yml index c208efe3..29d9263f 100644 --- a/projects/brazil/docker-compose.yml +++ b/projects/brazil/docker-compose.yml @@ -8,7 +8,7 @@ services: container_name: pelias_libpostal user: "${DOCKER_USER}" restart: always - ports: [ "0.0.0.0:4400:4400" ] + ports: [ "127.0.0.1:4400:4400" ] schema: image: pelias/schema:master container_name: pelias_schema @@ -21,7 +21,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "0.0.0.0:4000:4000" ] + ports: [ "127.0.0.1:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: @@ -30,7 +30,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4100" ] - ports: [ "0.0.0.0:4100:4100" ] + ports: [ "127.0.0.1:4100:4100" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -87,7 +87,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4300" ] - ports: [ "0.0.0.0:4300:4300" ] + ports: [ "127.0.0.1:4300:4300" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -97,7 +97,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4200" ] - ports: [ "0.0.0.0:4200:4200" ] + ports: [ "127.0.0.1:4200:4200" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -106,7 +106,7 @@ services: container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always - ports: [ "0.0.0.0:9200:9200", "0.0.0.0:9300:9300" ] + ports: [ "127.0.0.1:9200:9200", "127.0.0.1:9300:9300" ] volumes: - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" ulimits: diff --git a/projects/france/docker-compose.yml b/projects/france/docker-compose.yml index dd19e3af..1d518b3e 100644 --- a/projects/france/docker-compose.yml +++ b/projects/france/docker-compose.yml @@ -8,7 +8,7 @@ services: container_name: pelias_libpostal user: "${DOCKER_USER}" restart: always - ports: [ "0.0.0.0:4400:4400" ] + ports: [ "127.0.0.1:4400:4400" ] schema: image: pelias/schema:master container_name: pelias_schema @@ -21,7 +21,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "0.0.0.0:4000:4000" ] + ports: [ "127.0.0.1:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: @@ -30,7 +30,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4100" ] - ports: [ "0.0.0.0:4100:4100" ] + ports: [ "127.0.0.1:4100:4100" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -77,7 +77,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4300" ] - ports: [ "0.0.0.0:4300:4300" ] + ports: [ "127.0.0.1:4300:4300" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -87,7 +87,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4200" ] - ports: [ "0.0.0.0:4200:4200" ] + ports: [ "127.0.0.1:4200:4200" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -96,7 +96,7 @@ services: container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always - ports: [ "0.0.0.0:9200:9200", "0.0.0.0:9300:9300" ] + ports: [ "127.0.0.1:9200:9200", "127.0.0.1:9300:9300" ] volumes: - "./elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro" - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" diff --git a/projects/germany/docker-compose.yml b/projects/germany/docker-compose.yml index dd19e3af..1d518b3e 100644 --- a/projects/germany/docker-compose.yml +++ b/projects/germany/docker-compose.yml @@ -8,7 +8,7 @@ services: container_name: pelias_libpostal user: "${DOCKER_USER}" restart: always - ports: [ "0.0.0.0:4400:4400" ] + ports: [ "127.0.0.1:4400:4400" ] schema: image: pelias/schema:master container_name: pelias_schema @@ -21,7 +21,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "0.0.0.0:4000:4000" ] + ports: [ "127.0.0.1:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: @@ -30,7 +30,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4100" ] - ports: [ "0.0.0.0:4100:4100" ] + ports: [ "127.0.0.1:4100:4100" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -77,7 +77,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4300" ] - ports: [ "0.0.0.0:4300:4300" ] + ports: [ "127.0.0.1:4300:4300" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -87,7 +87,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4200" ] - ports: [ "0.0.0.0:4200:4200" ] + ports: [ "127.0.0.1:4200:4200" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -96,7 +96,7 @@ services: container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always - ports: [ "0.0.0.0:9200:9200", "0.0.0.0:9300:9300" ] + ports: [ "127.0.0.1:9200:9200", "127.0.0.1:9300:9300" ] volumes: - "./elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro" - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" diff --git a/projects/jamaica/docker-compose.yml b/projects/jamaica/docker-compose.yml index c208efe3..29d9263f 100644 --- a/projects/jamaica/docker-compose.yml +++ b/projects/jamaica/docker-compose.yml @@ -8,7 +8,7 @@ services: container_name: pelias_libpostal user: "${DOCKER_USER}" restart: always - ports: [ "0.0.0.0:4400:4400" ] + ports: [ "127.0.0.1:4400:4400" ] schema: image: pelias/schema:master container_name: pelias_schema @@ -21,7 +21,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "0.0.0.0:4000:4000" ] + ports: [ "127.0.0.1:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: @@ -30,7 +30,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4100" ] - ports: [ "0.0.0.0:4100:4100" ] + ports: [ "127.0.0.1:4100:4100" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -87,7 +87,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4300" ] - ports: [ "0.0.0.0:4300:4300" ] + ports: [ "127.0.0.1:4300:4300" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -97,7 +97,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4200" ] - ports: [ "0.0.0.0:4200:4200" ] + ports: [ "127.0.0.1:4200:4200" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -106,7 +106,7 @@ services: container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always - ports: [ "0.0.0.0:9200:9200", "0.0.0.0:9300:9300" ] + ports: [ "127.0.0.1:9200:9200", "127.0.0.1:9300:9300" ] volumes: - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" ulimits: diff --git a/projects/los-angeles-metro/docker-compose.yml b/projects/los-angeles-metro/docker-compose.yml index 520b841d..c1543a47 100644 --- a/projects/los-angeles-metro/docker-compose.yml +++ b/projects/los-angeles-metro/docker-compose.yml @@ -8,7 +8,7 @@ services: container_name: pelias_libpostal user: "${DOCKER_USER}" restart: always - ports: [ "0.0.0.0:4400:4400" ] + ports: [ "127.0.0.1:4400:4400" ] schema: image: pelias/schema:master container_name: pelias_schema @@ -23,7 +23,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "0.0.0.0:4000:4000" ] + ports: [ "127.0.0.1:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: @@ -32,7 +32,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4100" ] - ports: [ "0.0.0.0:4100:4100" ] + ports: [ "127.0.0.1:4100:4100" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -86,7 +86,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4300" ] - ports: [ "0.0.0.0:4300:4300" ] + ports: [ "127.0.0.1:4300:4300" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -96,7 +96,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4200" ] - ports: [ "0.0.0.0:4200:4200" ] + ports: [ "127.0.0.1:4200:4200" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -105,7 +105,7 @@ services: container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always - ports: [ "0.0.0.0:9200:9200", "0.0.0.0:9300:9300" ] + ports: [ "127.0.0.1:9200:9200", "127.0.0.1:9300:9300" ] volumes: - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" ulimits: diff --git a/projects/netherlands/docker-compose.yml b/projects/netherlands/docker-compose.yml index dd19e3af..1d518b3e 100644 --- a/projects/netherlands/docker-compose.yml +++ b/projects/netherlands/docker-compose.yml @@ -8,7 +8,7 @@ services: container_name: pelias_libpostal user: "${DOCKER_USER}" restart: always - ports: [ "0.0.0.0:4400:4400" ] + ports: [ "127.0.0.1:4400:4400" ] schema: image: pelias/schema:master container_name: pelias_schema @@ -21,7 +21,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "0.0.0.0:4000:4000" ] + ports: [ "127.0.0.1:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: @@ -30,7 +30,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4100" ] - ports: [ "0.0.0.0:4100:4100" ] + ports: [ "127.0.0.1:4100:4100" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -77,7 +77,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4300" ] - ports: [ "0.0.0.0:4300:4300" ] + ports: [ "127.0.0.1:4300:4300" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -87,7 +87,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4200" ] - ports: [ "0.0.0.0:4200:4200" ] + ports: [ "127.0.0.1:4200:4200" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -96,7 +96,7 @@ services: container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always - ports: [ "0.0.0.0:9200:9200", "0.0.0.0:9300:9300" ] + ports: [ "127.0.0.1:9200:9200", "127.0.0.1:9300:9300" ] volumes: - "./elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro" - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" diff --git a/projects/new-york-city/docker-compose.yml b/projects/new-york-city/docker-compose.yml index 80f30b9d..49790aa6 100644 --- a/projects/new-york-city/docker-compose.yml +++ b/projects/new-york-city/docker-compose.yml @@ -8,7 +8,7 @@ services: container_name: pelias_libpostal user: "${DOCKER_USER}" restart: always - ports: [ "0.0.0.0:4400:4400" ] + ports: [ "127.0.0.1:4400:4400" ] schema: image: pelias/schema:master container_name: pelias_schema @@ -21,7 +21,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "0.0.0.0:4000:4000" ] + ports: [ "127.0.0.1:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: @@ -30,7 +30,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4100" ] - ports: [ "0.0.0.0:4100:4100" ] + ports: [ "127.0.0.1:4100:4100" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -95,7 +95,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4300" ] - ports: [ "0.0.0.0:4300:4300" ] + ports: [ "127.0.0.1:4300:4300" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -105,7 +105,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4200" ] - ports: [ "0.0.0.0:4200:4200" ] + ports: [ "127.0.0.1:4200:4200" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -114,7 +114,7 @@ services: container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always - ports: [ "0.0.0.0:9200:9200", "0.0.0.0:9300:9300" ] + ports: [ "127.0.0.1:9200:9200", "127.0.0.1:9300:9300" ] volumes: - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" ulimits: diff --git a/projects/north-america/docker-compose.yml b/projects/north-america/docker-compose.yml index f216bb6e..b2ca9d26 100644 --- a/projects/north-america/docker-compose.yml +++ b/projects/north-america/docker-compose.yml @@ -8,7 +8,7 @@ services: container_name: pelias_libpostal user: "${DOCKER_USER}" restart: always - ports: [ "0.0.0.0:4400:4400" ] + ports: [ "127.0.0.1:4400:4400" ] schema: image: pelias/schema:master container_name: pelias_schema @@ -21,7 +21,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "0.0.0.0:4000:4000" ] + ports: [ "127.0.0.1:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: @@ -30,7 +30,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4100" ] - ports: [ "0.0.0.0:4100:4100" ] + ports: [ "127.0.0.1:4100:4100" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -95,7 +95,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4300" ] - ports: [ "0.0.0.0:4300:4300" ] + ports: [ "127.0.0.1:4300:4300" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -105,7 +105,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4200" ] - ports: [ "0.0.0.0:4200:4200" ] + ports: [ "127.0.0.1:4200:4200" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -115,7 +115,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "ES_JAVA_OPTS=-Xmx8g" ] - ports: [ "0.0.0.0:9200:9200", "0.0.0.0:9300:9300" ] + ports: [ "127.0.0.1:9200:9200", "127.0.0.1:9300:9300" ] volumes: - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" ulimits: diff --git a/projects/norway/docker-compose.yml b/projects/norway/docker-compose.yml index dd19e3af..1d518b3e 100644 --- a/projects/norway/docker-compose.yml +++ b/projects/norway/docker-compose.yml @@ -8,7 +8,7 @@ services: container_name: pelias_libpostal user: "${DOCKER_USER}" restart: always - ports: [ "0.0.0.0:4400:4400" ] + ports: [ "127.0.0.1:4400:4400" ] schema: image: pelias/schema:master container_name: pelias_schema @@ -21,7 +21,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "0.0.0.0:4000:4000" ] + ports: [ "127.0.0.1:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: @@ -30,7 +30,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4100" ] - ports: [ "0.0.0.0:4100:4100" ] + ports: [ "127.0.0.1:4100:4100" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -77,7 +77,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4300" ] - ports: [ "0.0.0.0:4300:4300" ] + ports: [ "127.0.0.1:4300:4300" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -87,7 +87,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4200" ] - ports: [ "0.0.0.0:4200:4200" ] + ports: [ "127.0.0.1:4200:4200" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -96,7 +96,7 @@ services: container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always - ports: [ "0.0.0.0:9200:9200", "0.0.0.0:9300:9300" ] + ports: [ "127.0.0.1:9200:9200", "127.0.0.1:9300:9300" ] volumes: - "./elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro" - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" diff --git a/projects/planet/docker-compose.yml b/projects/planet/docker-compose.yml index f216bb6e..b2ca9d26 100644 --- a/projects/planet/docker-compose.yml +++ b/projects/planet/docker-compose.yml @@ -8,7 +8,7 @@ services: container_name: pelias_libpostal user: "${DOCKER_USER}" restart: always - ports: [ "0.0.0.0:4400:4400" ] + ports: [ "127.0.0.1:4400:4400" ] schema: image: pelias/schema:master container_name: pelias_schema @@ -21,7 +21,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "0.0.0.0:4000:4000" ] + ports: [ "127.0.0.1:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: @@ -30,7 +30,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4100" ] - ports: [ "0.0.0.0:4100:4100" ] + ports: [ "127.0.0.1:4100:4100" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -95,7 +95,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4300" ] - ports: [ "0.0.0.0:4300:4300" ] + ports: [ "127.0.0.1:4300:4300" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -105,7 +105,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4200" ] - ports: [ "0.0.0.0:4200:4200" ] + ports: [ "127.0.0.1:4200:4200" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -115,7 +115,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "ES_JAVA_OPTS=-Xmx8g" ] - ports: [ "0.0.0.0:9200:9200", "0.0.0.0:9300:9300" ] + ports: [ "127.0.0.1:9200:9200", "127.0.0.1:9300:9300" ] volumes: - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" ulimits: diff --git a/projects/poland/docker-compose.yml b/projects/poland/docker-compose.yml index fd242cb4..adf80d28 100644 --- a/projects/poland/docker-compose.yml +++ b/projects/poland/docker-compose.yml @@ -8,7 +8,7 @@ services: container_name: pelias_libpostal user: "${DOCKER_USER}" restart: always - ports: [ "0.0.0.0:4400:4400" ] + ports: [ "127.0.0.1:4400:4400" ] schema: image: pelias/schema:master container_name: pelias_schema @@ -21,7 +21,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "0.0.0.0:4000:4000" ] + ports: [ "127.0.0.1:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: @@ -30,7 +30,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4100" ] - ports: [ "0.0.0.0:4100:4100" ] + ports: [ "127.0.0.1:4100:4100" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -84,7 +84,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4300" ] - ports: [ "0.0.0.0:4300:4300" ] + ports: [ "127.0.0.1:4300:4300" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -94,7 +94,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4200" ] - ports: [ "0.0.0.0:4200:4200" ] + ports: [ "127.0.0.1:4200:4200" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -103,7 +103,7 @@ services: container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always - ports: [ "0.0.0.0:9200:9200", "0.0.0.0:9300:9300" ] + ports: [ "127.0.0.1:9200:9200", "127.0.0.1:9300:9300" ] volumes: - "./elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro" - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" diff --git a/projects/portland-metro/docker-compose.yml b/projects/portland-metro/docker-compose.yml index c208efe3..29d9263f 100644 --- a/projects/portland-metro/docker-compose.yml +++ b/projects/portland-metro/docker-compose.yml @@ -8,7 +8,7 @@ services: container_name: pelias_libpostal user: "${DOCKER_USER}" restart: always - ports: [ "0.0.0.0:4400:4400" ] + ports: [ "127.0.0.1:4400:4400" ] schema: image: pelias/schema:master container_name: pelias_schema @@ -21,7 +21,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "0.0.0.0:4000:4000" ] + ports: [ "127.0.0.1:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: @@ -30,7 +30,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4100" ] - ports: [ "0.0.0.0:4100:4100" ] + ports: [ "127.0.0.1:4100:4100" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -87,7 +87,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4300" ] - ports: [ "0.0.0.0:4300:4300" ] + ports: [ "127.0.0.1:4300:4300" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -97,7 +97,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4200" ] - ports: [ "0.0.0.0:4200:4200" ] + ports: [ "127.0.0.1:4200:4200" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -106,7 +106,7 @@ services: container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always - ports: [ "0.0.0.0:9200:9200", "0.0.0.0:9300:9300" ] + ports: [ "127.0.0.1:9200:9200", "127.0.0.1:9300:9300" ] volumes: - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" ulimits: diff --git a/projects/san-jose-metro/docker-compose.yml b/projects/san-jose-metro/docker-compose.yml index 520b841d..c1543a47 100644 --- a/projects/san-jose-metro/docker-compose.yml +++ b/projects/san-jose-metro/docker-compose.yml @@ -8,7 +8,7 @@ services: container_name: pelias_libpostal user: "${DOCKER_USER}" restart: always - ports: [ "0.0.0.0:4400:4400" ] + ports: [ "127.0.0.1:4400:4400" ] schema: image: pelias/schema:master container_name: pelias_schema @@ -23,7 +23,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "0.0.0.0:4000:4000" ] + ports: [ "127.0.0.1:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: @@ -32,7 +32,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4100" ] - ports: [ "0.0.0.0:4100:4100" ] + ports: [ "127.0.0.1:4100:4100" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -86,7 +86,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4300" ] - ports: [ "0.0.0.0:4300:4300" ] + ports: [ "127.0.0.1:4300:4300" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -96,7 +96,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4200" ] - ports: [ "0.0.0.0:4200:4200" ] + ports: [ "127.0.0.1:4200:4200" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -105,7 +105,7 @@ services: container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always - ports: [ "0.0.0.0:9200:9200", "0.0.0.0:9300:9300" ] + ports: [ "127.0.0.1:9200:9200", "127.0.0.1:9300:9300" ] volumes: - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" ulimits: diff --git a/projects/singapore/docker-compose.yml b/projects/singapore/docker-compose.yml index 9b05a1c8..1bc92482 100644 --- a/projects/singapore/docker-compose.yml +++ b/projects/singapore/docker-compose.yml @@ -8,7 +8,7 @@ services: container_name: pelias_libpostal user: "${DOCKER_USER}" restart: always - ports: [ "0.0.0.0:4400:4400" ] + ports: [ "127.0.0.1:4400:4400" ] schema: image: pelias/schema:master container_name: pelias_schema @@ -21,7 +21,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "0.0.0.0:4000:4000" ] + ports: [ "127.0.0.1:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: @@ -30,7 +30,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4100" ] - ports: [ "0.0.0.0:4100:4100" ] + ports: [ "127.0.0.1:4100:4100" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -82,7 +82,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4300" ] - ports: [ "0.0.0.0:4300:4300" ] + ports: [ "127.0.0.1:4300:4300" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -92,7 +92,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4200" ] - ports: [ "0.0.0.0:4200:4200" ] + ports: [ "127.0.0.1:4200:4200" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -101,7 +101,7 @@ services: container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always - ports: [ "0.0.0.0:9200:9200", "0.0.0.0:9300:9300" ] + ports: [ "127.0.0.1:9200:9200", "127.0.0.1:9300:9300" ] volumes: - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" ulimits: diff --git a/projects/south-africa/docker-compose.yml b/projects/south-africa/docker-compose.yml index 1e94d167..20d84314 100644 --- a/projects/south-africa/docker-compose.yml +++ b/projects/south-africa/docker-compose.yml @@ -8,7 +8,7 @@ services: container_name: pelias_libpostal user: "${DOCKER_USER}" restart: always - ports: [ "0.0.0.0:4400:4400" ] + ports: [ "127.0.0.1:4400:4400" ] schema: image: pelias/schema:master container_name: pelias_schema @@ -23,7 +23,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "0.0.0.0:4000:4000" ] + ports: [ "127.0.0.1:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: @@ -32,7 +32,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4100" ] - ports: [ "0.0.0.0:4100:4100" ] + ports: [ "127.0.0.1:4100:4100" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -87,7 +87,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4300" ] - ports: [ "0.0.0.0:4300:4300" ] + ports: [ "127.0.0.1:4300:4300" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -97,7 +97,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4200" ] - ports: [ "0.0.0.0:4200:4200" ] + ports: [ "127.0.0.1:4200:4200" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -105,7 +105,7 @@ services: image: nginx container_name: pelias_preview restart: always - ports: [ "0.0.0.0:3000:80" ] + ports: [ "127.0.0.1:3000:80" ] volumes: - "../../common/preview:/usr/share/nginx/html" elasticsearch: @@ -113,7 +113,7 @@ services: container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always - ports: [ "0.0.0.0:9200:9200", "0.0.0.0:9300:9300" ] + ports: [ "127.0.0.1:9200:9200", "127.0.0.1:9300:9300" ] volumes: - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" ulimits: diff --git a/projects/south-america/docker-compose.yml b/projects/south-america/docker-compose.yml index c208efe3..29d9263f 100644 --- a/projects/south-america/docker-compose.yml +++ b/projects/south-america/docker-compose.yml @@ -8,7 +8,7 @@ services: container_name: pelias_libpostal user: "${DOCKER_USER}" restart: always - ports: [ "0.0.0.0:4400:4400" ] + ports: [ "127.0.0.1:4400:4400" ] schema: image: pelias/schema:master container_name: pelias_schema @@ -21,7 +21,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "0.0.0.0:4000:4000" ] + ports: [ "127.0.0.1:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: @@ -30,7 +30,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4100" ] - ports: [ "0.0.0.0:4100:4100" ] + ports: [ "127.0.0.1:4100:4100" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -87,7 +87,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4300" ] - ports: [ "0.0.0.0:4300:4300" ] + ports: [ "127.0.0.1:4300:4300" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -97,7 +97,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4200" ] - ports: [ "0.0.0.0:4200:4200" ] + ports: [ "127.0.0.1:4200:4200" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -106,7 +106,7 @@ services: container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always - ports: [ "0.0.0.0:9200:9200", "0.0.0.0:9300:9300" ] + ports: [ "127.0.0.1:9200:9200", "127.0.0.1:9300:9300" ] volumes: - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" ulimits: diff --git a/projects/texas/docker-compose.yml b/projects/texas/docker-compose.yml index 8682d9d3..c35ffa1c 100644 --- a/projects/texas/docker-compose.yml +++ b/projects/texas/docker-compose.yml @@ -8,7 +8,7 @@ services: container_name: pelias_libpostal user: "${DOCKER_USER}" restart: always - ports: [ "0.0.0.0:4400:4400" ] + ports: [ "127.0.0.1:4400:4400" ] schema: image: pelias/schema:master container_name: pelias_schema @@ -23,7 +23,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "0.0.0.0:4000:4000" ] + ports: [ "127.0.0.1:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: @@ -32,7 +32,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4100" ] - ports: [ "0.0.0.0:4100:4100" ] + ports: [ "127.0.0.1:4100:4100" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -89,7 +89,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4300" ] - ports: [ "0.0.0.0:4300:4300" ] + ports: [ "127.0.0.1:4300:4300" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -99,7 +99,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4200" ] - ports: [ "0.0.0.0:4200:4200" ] + ports: [ "127.0.0.1:4200:4200" ] volumes: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" @@ -108,7 +108,7 @@ services: container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always - ports: [ "0.0.0.0:9200:9200", "0.0.0.0:9300:9300" ] + ports: [ "127.0.0.1:9200:9200", "127.0.0.1:9300:9300" ] volumes: - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" ulimits: From 9f556d6adeff6e881d16fcdf9211c8678ec67f37 Mon Sep 17 00:00:00 2001 From: Joshua McLauchlan Date: Fri, 12 Feb 2021 09:53:48 +1030 Subject: [PATCH 54/98] Updated pelias api itself to be correctly exposed on 0.0.0.0 --- projects/australia/docker-compose.yml | 2 +- projects/austria/docker-compose.yml | 2 +- projects/belgium/docker-compose.yml | 2 +- projects/brazil/docker-compose.yml | 2 +- projects/france/docker-compose.yml | 2 +- projects/germany/docker-compose.yml | 2 +- projects/jamaica/docker-compose.yml | 2 +- projects/los-angeles-metro/docker-compose.yml | 2 +- projects/netherlands/docker-compose.yml | 2 +- projects/new-york-city/docker-compose.yml | 2 +- projects/north-america/docker-compose.yml | 2 +- projects/norway/docker-compose.yml | 2 +- projects/planet/docker-compose.yml | 2 +- projects/poland/docker-compose.yml | 2 +- projects/portland-metro/docker-compose.yml | 2 +- projects/san-jose-metro/docker-compose.yml | 2 +- projects/singapore/docker-compose.yml | 2 +- projects/south-africa/docker-compose.yml | 2 +- projects/south-america/docker-compose.yml | 2 +- projects/texas/docker-compose.yml | 2 +- 20 files changed, 20 insertions(+), 20 deletions(-) diff --git a/projects/australia/docker-compose.yml b/projects/australia/docker-compose.yml index 6544177e..7375145e 100644 --- a/projects/australia/docker-compose.yml +++ b/projects/australia/docker-compose.yml @@ -21,7 +21,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "127.0.0.1:4000:4000" ] + ports: [ "0.0.0.0:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: diff --git a/projects/austria/docker-compose.yml b/projects/austria/docker-compose.yml index 1d518b3e..0a48c5dd 100644 --- a/projects/austria/docker-compose.yml +++ b/projects/austria/docker-compose.yml @@ -21,7 +21,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "127.0.0.1:4000:4000" ] + ports: [ "0.0.0.0:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: diff --git a/projects/belgium/docker-compose.yml b/projects/belgium/docker-compose.yml index 1d518b3e..0a48c5dd 100644 --- a/projects/belgium/docker-compose.yml +++ b/projects/belgium/docker-compose.yml @@ -21,7 +21,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "127.0.0.1:4000:4000" ] + ports: [ "0.0.0.0:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: diff --git a/projects/brazil/docker-compose.yml b/projects/brazil/docker-compose.yml index 29d9263f..b650b1ba 100644 --- a/projects/brazil/docker-compose.yml +++ b/projects/brazil/docker-compose.yml @@ -21,7 +21,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "127.0.0.1:4000:4000" ] + ports: [ "0.0.0.0:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: diff --git a/projects/france/docker-compose.yml b/projects/france/docker-compose.yml index 1d518b3e..0a48c5dd 100644 --- a/projects/france/docker-compose.yml +++ b/projects/france/docker-compose.yml @@ -21,7 +21,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "127.0.0.1:4000:4000" ] + ports: [ "0.0.0.0:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: diff --git a/projects/germany/docker-compose.yml b/projects/germany/docker-compose.yml index 1d518b3e..0a48c5dd 100644 --- a/projects/germany/docker-compose.yml +++ b/projects/germany/docker-compose.yml @@ -21,7 +21,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "127.0.0.1:4000:4000" ] + ports: [ "0.0.0.0:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: diff --git a/projects/jamaica/docker-compose.yml b/projects/jamaica/docker-compose.yml index 29d9263f..b650b1ba 100644 --- a/projects/jamaica/docker-compose.yml +++ b/projects/jamaica/docker-compose.yml @@ -21,7 +21,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "127.0.0.1:4000:4000" ] + ports: [ "0.0.0.0:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: diff --git a/projects/los-angeles-metro/docker-compose.yml b/projects/los-angeles-metro/docker-compose.yml index c1543a47..6f9a07a1 100644 --- a/projects/los-angeles-metro/docker-compose.yml +++ b/projects/los-angeles-metro/docker-compose.yml @@ -23,7 +23,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "127.0.0.1:4000:4000" ] + ports: [ "0.0.0.0:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: diff --git a/projects/netherlands/docker-compose.yml b/projects/netherlands/docker-compose.yml index 1d518b3e..0a48c5dd 100644 --- a/projects/netherlands/docker-compose.yml +++ b/projects/netherlands/docker-compose.yml @@ -21,7 +21,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "127.0.0.1:4000:4000" ] + ports: [ "0.0.0.0:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: diff --git a/projects/new-york-city/docker-compose.yml b/projects/new-york-city/docker-compose.yml index 49790aa6..213bb3f1 100644 --- a/projects/new-york-city/docker-compose.yml +++ b/projects/new-york-city/docker-compose.yml @@ -21,7 +21,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "127.0.0.1:4000:4000" ] + ports: [ "0.0.0.0:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: diff --git a/projects/north-america/docker-compose.yml b/projects/north-america/docker-compose.yml index b2ca9d26..1b89e575 100644 --- a/projects/north-america/docker-compose.yml +++ b/projects/north-america/docker-compose.yml @@ -21,7 +21,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "127.0.0.1:4000:4000" ] + ports: [ "0.0.0.0:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: diff --git a/projects/norway/docker-compose.yml b/projects/norway/docker-compose.yml index 1d518b3e..0a48c5dd 100644 --- a/projects/norway/docker-compose.yml +++ b/projects/norway/docker-compose.yml @@ -21,7 +21,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "127.0.0.1:4000:4000" ] + ports: [ "0.0.0.0:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: diff --git a/projects/planet/docker-compose.yml b/projects/planet/docker-compose.yml index b2ca9d26..1b89e575 100644 --- a/projects/planet/docker-compose.yml +++ b/projects/planet/docker-compose.yml @@ -21,7 +21,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "127.0.0.1:4000:4000" ] + ports: [ "0.0.0.0:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: diff --git a/projects/poland/docker-compose.yml b/projects/poland/docker-compose.yml index adf80d28..e1e9c1ec 100644 --- a/projects/poland/docker-compose.yml +++ b/projects/poland/docker-compose.yml @@ -21,7 +21,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "127.0.0.1:4000:4000" ] + ports: [ "0.0.0.0:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: diff --git a/projects/portland-metro/docker-compose.yml b/projects/portland-metro/docker-compose.yml index 29d9263f..b650b1ba 100644 --- a/projects/portland-metro/docker-compose.yml +++ b/projects/portland-metro/docker-compose.yml @@ -21,7 +21,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "127.0.0.1:4000:4000" ] + ports: [ "0.0.0.0:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: diff --git a/projects/san-jose-metro/docker-compose.yml b/projects/san-jose-metro/docker-compose.yml index c1543a47..6f9a07a1 100644 --- a/projects/san-jose-metro/docker-compose.yml +++ b/projects/san-jose-metro/docker-compose.yml @@ -23,7 +23,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "127.0.0.1:4000:4000" ] + ports: [ "0.0.0.0:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: diff --git a/projects/singapore/docker-compose.yml b/projects/singapore/docker-compose.yml index 1bc92482..7beb52ff 100644 --- a/projects/singapore/docker-compose.yml +++ b/projects/singapore/docker-compose.yml @@ -21,7 +21,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "127.0.0.1:4000:4000" ] + ports: [ "0.0.0.0:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: diff --git a/projects/south-africa/docker-compose.yml b/projects/south-africa/docker-compose.yml index 20d84314..d4e8dc55 100644 --- a/projects/south-africa/docker-compose.yml +++ b/projects/south-africa/docker-compose.yml @@ -23,7 +23,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "127.0.0.1:4000:4000" ] + ports: [ "0.0.0.0:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: diff --git a/projects/south-america/docker-compose.yml b/projects/south-america/docker-compose.yml index 29d9263f..b650b1ba 100644 --- a/projects/south-america/docker-compose.yml +++ b/projects/south-america/docker-compose.yml @@ -21,7 +21,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "127.0.0.1:4000:4000" ] + ports: [ "0.0.0.0:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: diff --git a/projects/texas/docker-compose.yml b/projects/texas/docker-compose.yml index c35ffa1c..b46483b8 100644 --- a/projects/texas/docker-compose.yml +++ b/projects/texas/docker-compose.yml @@ -23,7 +23,7 @@ services: user: "${DOCKER_USER}" restart: always environment: [ "PORT=4000" ] - ports: [ "127.0.0.1:4000:4000" ] + ports: [ "0.0.0.0:4000:4000" ] volumes: - "./pelias.json:/code/pelias.json" placeholder: From 312902e72edfa6bdaba0b6a6951e65ad9f1fe568 Mon Sep 17 00:00:00 2001 From: irbian <3071767+irbian@users.noreply.github.com> Date: Fri, 26 Nov 2021 13:26:53 +0100 Subject: [PATCH 55/98] Update README.md Add the csv importer to the list as per https://github.com/pelias/docker/blob/master/cmd/import.sh#L19 --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 67b855cf..6efb4942 100644 --- a/README.md +++ b/README.md @@ -238,6 +238,7 @@ Usage: pelias [command] [action] [options] import osm (re)import openstreetmap data import polylines (re)import polylines data import transit (re)import transit data + import csv (re)import csv data import all (re)import all data prepare polylines export road network from openstreetmap into polylines format prepare interpolation build interpolation sqlite databases From 2963651439ec07217772f0cae00910df8effa9bf Mon Sep 17 00:00:00 2001 From: Julian Simioni Date: Tue, 14 Dec 2021 10:45:04 -0500 Subject: [PATCH 56/98] Upgrade Elasticearch to version 7.16.1 Upgrade the default Elasticsearch image to use version 7.16.1. This version contains fixes for the log4j 'log4shell' security vulnerability. Closes https://github.com/pelias/docker/issues/273 Connects https://github.com/pelias/pelias/issues/921 --- projects/australia/docker-compose.yml | 2 +- projects/austria/docker-compose.yml | 2 +- projects/belgium/docker-compose.yml | 2 +- projects/brazil/docker-compose.yml | 2 +- projects/france/docker-compose.yml | 2 +- projects/germany/docker-compose.yml | 2 +- projects/jamaica/docker-compose.yml | 2 +- projects/los-angeles-metro/docker-compose.yml | 2 +- projects/netherlands/docker-compose.yml | 2 +- projects/new-york-city/docker-compose.yml | 2 +- projects/north-america/docker-compose.yml | 2 +- projects/norway/docker-compose.yml | 2 +- projects/planet/docker-compose.yml | 2 +- projects/poland/docker-compose.yml | 2 +- projects/portland-metro/docker-compose.yml | 2 +- projects/san-jose-metro/docker-compose.yml | 2 +- projects/singapore/docker-compose.yml | 2 +- projects/south-africa/docker-compose.yml | 2 +- projects/south-america/docker-compose.yml | 2 +- projects/texas/docker-compose.yml | 2 +- 20 files changed, 20 insertions(+), 20 deletions(-) diff --git a/projects/australia/docker-compose.yml b/projects/australia/docker-compose.yml index 7375145e..16a9c289 100644 --- a/projects/australia/docker-compose.yml +++ b/projects/australia/docker-compose.yml @@ -118,7 +118,7 @@ services: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" elasticsearch: - image: pelias/elasticsearch:7.5.1 + image: pelias/elasticsearch:7.16.1 container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always diff --git a/projects/austria/docker-compose.yml b/projects/austria/docker-compose.yml index 0a48c5dd..5399075d 100644 --- a/projects/austria/docker-compose.yml +++ b/projects/austria/docker-compose.yml @@ -92,7 +92,7 @@ services: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" elasticsearch: - image: pelias/elasticsearch:7.5.1 + image: pelias/elasticsearch:7.16.1 container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always diff --git a/projects/belgium/docker-compose.yml b/projects/belgium/docker-compose.yml index 0a48c5dd..5399075d 100644 --- a/projects/belgium/docker-compose.yml +++ b/projects/belgium/docker-compose.yml @@ -92,7 +92,7 @@ services: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" elasticsearch: - image: pelias/elasticsearch:7.5.1 + image: pelias/elasticsearch:7.16.1 container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always diff --git a/projects/brazil/docker-compose.yml b/projects/brazil/docker-compose.yml index b650b1ba..98ae9da8 100644 --- a/projects/brazil/docker-compose.yml +++ b/projects/brazil/docker-compose.yml @@ -102,7 +102,7 @@ services: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" elasticsearch: - image: pelias/elasticsearch:7.5.1 + image: pelias/elasticsearch:7.16.1 container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always diff --git a/projects/france/docker-compose.yml b/projects/france/docker-compose.yml index 0a48c5dd..5399075d 100644 --- a/projects/france/docker-compose.yml +++ b/projects/france/docker-compose.yml @@ -92,7 +92,7 @@ services: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" elasticsearch: - image: pelias/elasticsearch:7.5.1 + image: pelias/elasticsearch:7.16.1 container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always diff --git a/projects/germany/docker-compose.yml b/projects/germany/docker-compose.yml index 0a48c5dd..5399075d 100644 --- a/projects/germany/docker-compose.yml +++ b/projects/germany/docker-compose.yml @@ -92,7 +92,7 @@ services: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" elasticsearch: - image: pelias/elasticsearch:7.5.1 + image: pelias/elasticsearch:7.16.1 container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always diff --git a/projects/jamaica/docker-compose.yml b/projects/jamaica/docker-compose.yml index b650b1ba..98ae9da8 100644 --- a/projects/jamaica/docker-compose.yml +++ b/projects/jamaica/docker-compose.yml @@ -102,7 +102,7 @@ services: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" elasticsearch: - image: pelias/elasticsearch:7.5.1 + image: pelias/elasticsearch:7.16.1 container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always diff --git a/projects/los-angeles-metro/docker-compose.yml b/projects/los-angeles-metro/docker-compose.yml index 6f9a07a1..37fc8200 100644 --- a/projects/los-angeles-metro/docker-compose.yml +++ b/projects/los-angeles-metro/docker-compose.yml @@ -101,7 +101,7 @@ services: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" elasticsearch: - image: pelias/elasticsearch:7.5.1 + image: pelias/elasticsearch:7.16.1 container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always diff --git a/projects/netherlands/docker-compose.yml b/projects/netherlands/docker-compose.yml index 0a48c5dd..5399075d 100644 --- a/projects/netherlands/docker-compose.yml +++ b/projects/netherlands/docker-compose.yml @@ -92,7 +92,7 @@ services: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" elasticsearch: - image: pelias/elasticsearch:7.5.1 + image: pelias/elasticsearch:7.16.1 container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always diff --git a/projects/new-york-city/docker-compose.yml b/projects/new-york-city/docker-compose.yml index 213bb3f1..a4735607 100644 --- a/projects/new-york-city/docker-compose.yml +++ b/projects/new-york-city/docker-compose.yml @@ -110,7 +110,7 @@ services: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" elasticsearch: - image: pelias/elasticsearch:7.5.1 + image: pelias/elasticsearch:7.16.1 container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always diff --git a/projects/north-america/docker-compose.yml b/projects/north-america/docker-compose.yml index 1b89e575..f01002bf 100644 --- a/projects/north-america/docker-compose.yml +++ b/projects/north-america/docker-compose.yml @@ -110,7 +110,7 @@ services: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" elasticsearch: - image: pelias/elasticsearch:7.5.1 + image: pelias/elasticsearch:7.16.1 container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always diff --git a/projects/norway/docker-compose.yml b/projects/norway/docker-compose.yml index 0a48c5dd..5399075d 100644 --- a/projects/norway/docker-compose.yml +++ b/projects/norway/docker-compose.yml @@ -92,7 +92,7 @@ services: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" elasticsearch: - image: pelias/elasticsearch:7.5.1 + image: pelias/elasticsearch:7.16.1 container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always diff --git a/projects/planet/docker-compose.yml b/projects/planet/docker-compose.yml index 1b89e575..f01002bf 100644 --- a/projects/planet/docker-compose.yml +++ b/projects/planet/docker-compose.yml @@ -110,7 +110,7 @@ services: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" elasticsearch: - image: pelias/elasticsearch:7.5.1 + image: pelias/elasticsearch:7.16.1 container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always diff --git a/projects/poland/docker-compose.yml b/projects/poland/docker-compose.yml index e1e9c1ec..e1f6e8db 100644 --- a/projects/poland/docker-compose.yml +++ b/projects/poland/docker-compose.yml @@ -99,7 +99,7 @@ services: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" elasticsearch: - image: pelias/elasticsearch:7.5.1 + image: pelias/elasticsearch:7.16.1 container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always diff --git a/projects/portland-metro/docker-compose.yml b/projects/portland-metro/docker-compose.yml index b650b1ba..98ae9da8 100644 --- a/projects/portland-metro/docker-compose.yml +++ b/projects/portland-metro/docker-compose.yml @@ -102,7 +102,7 @@ services: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" elasticsearch: - image: pelias/elasticsearch:7.5.1 + image: pelias/elasticsearch:7.16.1 container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always diff --git a/projects/san-jose-metro/docker-compose.yml b/projects/san-jose-metro/docker-compose.yml index 6f9a07a1..37fc8200 100644 --- a/projects/san-jose-metro/docker-compose.yml +++ b/projects/san-jose-metro/docker-compose.yml @@ -101,7 +101,7 @@ services: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" elasticsearch: - image: pelias/elasticsearch:7.5.1 + image: pelias/elasticsearch:7.16.1 container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always diff --git a/projects/singapore/docker-compose.yml b/projects/singapore/docker-compose.yml index 7beb52ff..5b0e4071 100644 --- a/projects/singapore/docker-compose.yml +++ b/projects/singapore/docker-compose.yml @@ -97,7 +97,7 @@ services: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" elasticsearch: - image: pelias/elasticsearch:7.5.1 + image: pelias/elasticsearch:7.16.1 container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always diff --git a/projects/south-africa/docker-compose.yml b/projects/south-africa/docker-compose.yml index d4e8dc55..ed3bb2a0 100644 --- a/projects/south-africa/docker-compose.yml +++ b/projects/south-africa/docker-compose.yml @@ -109,7 +109,7 @@ services: volumes: - "../../common/preview:/usr/share/nginx/html" elasticsearch: - image: pelias/elasticsearch:7.5.1 + image: pelias/elasticsearch:7.16.1 container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always diff --git a/projects/south-america/docker-compose.yml b/projects/south-america/docker-compose.yml index b650b1ba..98ae9da8 100644 --- a/projects/south-america/docker-compose.yml +++ b/projects/south-america/docker-compose.yml @@ -102,7 +102,7 @@ services: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" elasticsearch: - image: pelias/elasticsearch:7.5.1 + image: pelias/elasticsearch:7.16.1 container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always diff --git a/projects/texas/docker-compose.yml b/projects/texas/docker-compose.yml index b46483b8..d96a9f2e 100644 --- a/projects/texas/docker-compose.yml +++ b/projects/texas/docker-compose.yml @@ -104,7 +104,7 @@ services: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" elasticsearch: - image: pelias/elasticsearch:7.5.1 + image: pelias/elasticsearch:7.16.1 container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always From ce5b6b9e9a80c3eb9404c7c1d0324ca75030f1d7 Mon Sep 17 00:00:00 2001 From: Peter Johnson Date: Thu, 27 Jan 2022 14:08:52 +0100 Subject: [PATCH 57/98] projects: portland-metro CSV URL fix the file `http://biketownpdx.socialbicycles.com/opendata/station_information.json` is now hosted at `https://gbfs.biketownpdx.com/gbfs/en/station_information.json` --- projects/portland-metro/pelias.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/portland-metro/pelias.json b/projects/portland-metro/pelias.json index 52358f05..d4c6df58 100644 --- a/projects/portland-metro/pelias.json +++ b/projects/portland-metro/pelias.json @@ -95,7 +95,7 @@ "feeds": [ { "layerId": "bikeshare", - "url": "http://biketownpdx.socialbicycles.com/opendata/station_information.json", + "url": "https://gbfs.biketownpdx.com/gbfs/en/station_information.json", "filename": "BIKETOWN-hubs.json", "agencyId": "BIKETOWN", "agencyName": "BIKETOWN", From 73ea85079c11690e4dcd5a37e86c20f5ce51ca98 Mon Sep 17 00:00:00 2001 From: Anderson Carlos Ferreira da Silva Date: Mon, 9 May 2022 21:02:48 +0200 Subject: [PATCH 58/98] Adding example for Libpostal Service adding an example from a running instance of the Libpostal Service (whosonfirst/go-whosonfirst-libpostal server) for use by Pelias. More details: https://github.com/pelias/libpostal-service#example-usage --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 6efb4942..cacf8385 100644 --- a/README.md +++ b/README.md @@ -406,3 +406,7 @@ Once all the importers have completed and the Pelias services are running, you c ### Interpolation - http://localhost:4300/demo/#13/45.5465/-122.6351 + +### Libpostal + +- http://localhost:4400/parse?address=1730+ne+26th+ave,+portland,+or From 6c50a65a397443a319d689e609d63e9d286632b5 Mon Sep 17 00:00:00 2001 From: William Wyatt Date: Sat, 8 Oct 2022 01:32:47 -0700 Subject: [PATCH 59/98] Added Alternative to Valhalla Added optional alternative to building and running Valhalla using https://geocode.earth/data/. --- projects/north-america/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/north-america/README.md b/projects/north-america/README.md index 8c8047e5..9373a272 100644 --- a/projects/north-america/README.md +++ b/projects/north-america/README.md @@ -14,7 +14,7 @@ Please refer to the instructions at https://github.com/pelias/docker in order to The minimum configuration required in order to run this project are [installing prerequisites](https://github.com/pelias/docker#prerequisites), [install the pelias command](https://github.com/pelias/docker#installing-the-pelias-command) and [configure the environment](https://github.com/pelias/docker#configure-environment). -This build also requires [obtaining or generating a polylines file from Valhalla](https://github.com/pelias/polylines/wiki/Generating-polylines-from-Valhalla). Once you have the polylines file, you must move it to `polylines/extract.0sv`. +This build also requires [obtaining or generating a polylines file from Valhalla](https://github.com/pelias/polylines/wiki/Generating-polylines-from-Valhalla). Once you have the polylines file, you must move it to `polylines/extract.0sv`. You can also download the latest `north-america-valhalla.polylines.0sv.gz`, move and rename from: https://geocode.earth/data/ Please ensure that's all working fine before continuing. From fcfefd83940f4a2f9533db097a44648fec5c5470 Mon Sep 17 00:00:00 2001 From: Peter Johnson Date: Wed, 1 Feb 2023 13:57:30 +0100 Subject: [PATCH 60/98] portland-metro: fix broken data URLS (#309) --- projects/portland-metro/pelias.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/projects/portland-metro/pelias.json b/projects/portland-metro/pelias.json index d4c6df58..2de88f6b 100644 --- a/projects/portland-metro/pelias.json +++ b/projects/portland-metro/pelias.json @@ -57,7 +57,7 @@ }, "openstreetmap": { "download": [ - { "sourceURL": "https://s3.amazonaws.com/metro-extracts.nextzen.org/portland_oregon.osm.pbf" } + { "sourceURL": "https://data.geocode.earth/archive/portland-metro/2022-06-20/portland_oregon.osm.pbf" } ], "leveldbpath": "/tmp", "datapath": "/data/openstreetmap", @@ -111,7 +111,7 @@ }, { "layerId": "stops", - "url": "http://www.c-tran.com/images/Google/GoogleTransitUpload.zip", + "url": "https://data.geocode.earth/archive/portland-metro/2022-06-20/C-TRAN.zip", "filename": "C-TRAN-stops.txt", "agencyId": "C-TRAN", "agencyName": "C-TRAN", From 9d8d8db82495389daac378ec2162e87d75cb3568 Mon Sep 17 00:00:00 2001 From: Reese Russell Date: Fri, 17 Mar 2023 00:12:16 -0700 Subject: [PATCH 61/98] North America Project README.md link fix (#314) * query url in README.md correctly renders Added a '%20' encoding to the link portion so that Pelias query link url would render and function properly. * included protocol information that was missed. I missed the `http://` portion of the link. sorry --- projects/north-america/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/north-america/README.md b/projects/north-america/README.md index 9373a272..682bd2b2 100644 --- a/projects/north-america/README.md +++ b/projects/north-america/README.md @@ -38,4 +38,4 @@ pelias test run You can now make queries against your new Pelias build: -[http://localhost:4000/v1/search?text=empire state building](http://localhost:4000/v1/search?text=empire state building) +[http://localhost:4000/v1/search?text=empire state building](http://localhost:4000/v1/search?text=empire%20state%20building) From 4ae58309eb1791e91867c3bf834ebb058af7845f Mon Sep 17 00:00:00 2001 From: aminato <41439528+aminato@users.noreply.github.com> Date: Fri, 7 Jul 2023 15:06:16 +0200 Subject: [PATCH 62/98] Add Italy project (#287) * Add Italy project * Fix readme title --- projects/italy/.env | 2 + projects/italy/README.md | 32 +++++++++ projects/italy/docker-compose.yml | 112 ++++++++++++++++++++++++++++++ projects/italy/elasticsearch.yml | 4 ++ projects/italy/pelias.json | 66 ++++++++++++++++++ 5 files changed, 216 insertions(+) create mode 100644 projects/italy/.env create mode 100644 projects/italy/README.md create mode 100644 projects/italy/docker-compose.yml create mode 100644 projects/italy/elasticsearch.yml create mode 100644 projects/italy/pelias.json diff --git a/projects/italy/.env b/projects/italy/.env new file mode 100644 index 00000000..de671526 --- /dev/null +++ b/projects/italy/.env @@ -0,0 +1,2 @@ +COMPOSE_PROJECT_NAME=pelias +DATA_DIR=/tmp/pelias/italy diff --git a/projects/italy/README.md b/projects/italy/README.md new file mode 100644 index 00000000..35a4092b --- /dev/null +++ b/projects/italy/README.md @@ -0,0 +1,32 @@ +# Italian area + +This project is configured to download/prepare/build a complete Pelias installation for Italy. + +# Setup + +Please refer to the instructions at in order to install and configure your docker environment. + +The minimum configuration required in order to run this project are [installing prerequisites](https://github.com/pelias/docker#prerequisites), [install the pelias command](https://github.com/pelias/docker#installing-the-pelias-command) and [configure the environment](https://github.com/pelias/docker#configure-environment). + +Please ensure that's all working fine before continuing. + +# Run a Build + +To run a complete build, execute the following commands: + +```bash +pelias compose pull +pelias elastic start +pelias elastic wait +pelias elastic create +pelias download all +pelias prepare all +pelias import all +pelias compose up +``` + +# Make an Example Query + +You can now make queries against your new Pelias build: + + diff --git a/projects/italy/docker-compose.yml b/projects/italy/docker-compose.yml new file mode 100644 index 00000000..5399075d --- /dev/null +++ b/projects/italy/docker-compose.yml @@ -0,0 +1,112 @@ +version: '3' +networks: + default: + driver: bridge +services: + libpostal: + image: pelias/libpostal-service + container_name: pelias_libpostal + user: "${DOCKER_USER}" + restart: always + ports: [ "127.0.0.1:4400:4400" ] + schema: + image: pelias/schema:master + container_name: pelias_schema + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + api: + image: pelias/api:master + container_name: pelias_api + user: "${DOCKER_USER}" + restart: always + environment: [ "PORT=4000" ] + ports: [ "0.0.0.0:4000:4000" ] + volumes: + - "./pelias.json:/code/pelias.json" + placeholder: + image: pelias/placeholder:master + container_name: pelias_placeholder + user: "${DOCKER_USER}" + restart: always + environment: [ "PORT=4100" ] + ports: [ "127.0.0.1:4100:4100" ] + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + - "./blacklist/:/data/blacklist" + whosonfirst: + image: pelias/whosonfirst:master + container_name: pelias_whosonfirst + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + openstreetmap: + image: pelias/openstreetmap:master + container_name: pelias_openstreetmap + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + openaddresses: + image: pelias/openaddresses:master + container_name: pelias_openaddresses + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + csv-importer: + image: pelias/csv-importer:master + container_name: pelias_csv_importer + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + - "./blacklist/:/data/blacklist" + polylines: + image: pelias/polylines:master + container_name: pelias_polylines + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + interpolation: + image: pelias/interpolation:master + container_name: pelias_interpolation + user: "${DOCKER_USER}" + restart: always + environment: [ "PORT=4300" ] + ports: [ "127.0.0.1:4300:4300" ] + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + pip: + image: pelias/pip-service:master + container_name: pelias_pip-service + user: "${DOCKER_USER}" + restart: always + environment: [ "PORT=4200" ] + ports: [ "127.0.0.1:4200:4200" ] + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + elasticsearch: + image: pelias/elasticsearch:7.16.1 + container_name: pelias_elasticsearch + user: "${DOCKER_USER}" + restart: always + ports: [ "127.0.0.1:9200:9200", "127.0.0.1:9300:9300" ] + volumes: + - "./elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro" + - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" + ulimits: + memlock: + soft: -1 + hard: -1 + nofile: + soft: 65536 + hard: 65536 + cap_add: [ "IPC_LOCK" ] + security_opt: + - seccomp=unconfined diff --git a/projects/italy/elasticsearch.yml b/projects/italy/elasticsearch.yml new file mode 100644 index 00000000..ca137940 --- /dev/null +++ b/projects/italy/elasticsearch.yml @@ -0,0 +1,4 @@ +network.host: 0.0.0.0 +bootstrap.memory_lock: true +indices.breaker.fielddata.limit: 85% +indices.fielddata.cache.size: 75% \ No newline at end of file diff --git a/projects/italy/pelias.json b/projects/italy/pelias.json new file mode 100644 index 00000000..a04e9a5e --- /dev/null +++ b/projects/italy/pelias.json @@ -0,0 +1,66 @@ +{ + "logger": { + "level": "debug", + "timestamp": false + }, + "esclient": { + "apiVersion": "7.5", + "hosts": [ + { "host": "elasticsearch" } + ] + }, + "elasticsearch": { + "settings": { + "index": { + "refresh_interval": "10s", + "number_of_replicas": "0", + "number_of_shards": "1" + } + } + }, + "api": { + "services": { + "pip": { "url": "http://pip:4200" }, + "libpostal": { "url": "http://libpostal:4400" }, + "placeholder": { "url": "http://placeholder:4100" }, + "interpolation": { "url": "http://interpolation:4300" } + }, + "defaultParameters": { + "focus.point.lat": 45.99, + "focus.point.lon": 12.63 + } + }, + "imports": { + "adminLookup": { + "enabled": true + }, + "geonames": { + "datapath": "/data/geonames", + "countryCode": "IT" + }, + "openstreetmap": { + "download": [ + { "sourceURL": "http://download.geofabrik.de/europe/italy-latest.osm.pbf" } + ], + "leveldbpath": "/tmp", + "datapath": "/data/openstreetmap", + "import": [{ + "filename": "italy-latest.osm.pbf" + }] + }, + "openaddresses": { + "datapath": "/data/openaddresses", + "files": ["it/countrywide.csv"] + }, + "polyline": { + "datapath": "/data/polylines", + "files": [ "extract.0sv" ] + }, + "whosonfirst": { + "datapath": "/data/whosonfirst", + "countryCode": "IT", + "importPostalcodes": true, + "importPlace": [ "85633253" ] + } + } +} From d91a42e6a473f9a73e272c0969fc59cb9b4a2146 Mon Sep 17 00:00:00 2001 From: Julius Vitkauskas Date: Fri, 7 Jul 2023 16:09:36 +0300 Subject: [PATCH 63/98] Add project for Lithuania (#310) --- projects/lithuania/.env | 2 + projects/lithuania/README.md | 34 ++++++++ projects/lithuania/docker-compose.yml | 119 ++++++++++++++++++++++++++ projects/lithuania/elasticsearch.yml | 4 + projects/lithuania/pelias.json | 59 +++++++++++++ 5 files changed, 218 insertions(+) create mode 100644 projects/lithuania/.env create mode 100644 projects/lithuania/README.md create mode 100644 projects/lithuania/docker-compose.yml create mode 100644 projects/lithuania/elasticsearch.yml create mode 100644 projects/lithuania/pelias.json diff --git a/projects/lithuania/.env b/projects/lithuania/.env new file mode 100644 index 00000000..c27c8edb --- /dev/null +++ b/projects/lithuania/.env @@ -0,0 +1,2 @@ +COMPOSE_PROJECT_NAME=pelias +DATA_DIR=./data diff --git a/projects/lithuania/README.md b/projects/lithuania/README.md new file mode 100644 index 00000000..49405702 --- /dev/null +++ b/projects/lithuania/README.md @@ -0,0 +1,34 @@ +# Lithuania + +This project is configured to download/prepare/build a complete Pelias installation for Lithuania. + +# Setup + +Please refer to the instructions at in order to install and configure your docker environment. + +Given the coverage provided by OpenAddresses is somewhat sparse, it's worth examining the configuration and the OpenAddresses coverage to understand your queries. + +The minimum configuration required in order to run this project are [installing prerequisites](https://github.com/pelias/docker#prerequisites), [install the pelias command](https://github.com/pelias/docker#installing-the-pelias-command) and [configure the environment](https://github.com/pelias/docker#configure-environment). + +Please ensure that's all working fine before continuing. + +# Run a Build + +To run a complete build, execute the following commands: + +```bash +pelias compose pull +pelias elastic start +pelias elastic wait +pelias elastic create +pelias download all +pelias prepare all +pelias import all +pelias compose up +``` + +# Make an Example Query + +You can now make queries against your new Pelias build: + + diff --git a/projects/lithuania/docker-compose.yml b/projects/lithuania/docker-compose.yml new file mode 100644 index 00000000..9eedd9c5 --- /dev/null +++ b/projects/lithuania/docker-compose.yml @@ -0,0 +1,119 @@ +version: '3' +networks: + default: + driver: bridge +services: + libpostal: + image: pelias/libpostal-service + container_name: pelias_libpostal + user: "${DOCKER_USER}" + restart: always + ports: [ "127.0.0.1:4400:4400" ] + schema: + image: pelias/schema:master + container_name: pelias_schema + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + api: + image: pelias/api:master + container_name: pelias_api + user: "${DOCKER_USER}" + restart: always + environment: [ "PORT=4000" ] + ports: [ "0.0.0.0:4000:4000" ] + volumes: + - "./pelias.json:/code/pelias.json" + placeholder: + image: pelias/placeholder:master + container_name: pelias_placeholder + user: "${DOCKER_USER}" + restart: always + environment: [ "PORT=4100" ] + ports: [ "127.0.0.1:4100:4100" ] + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + - "./blacklist/:/data/blacklist" + whosonfirst: + image: pelias/whosonfirst:master + container_name: pelias_whosonfirst + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + openstreetmap: + image: pelias/openstreetmap:master + container_name: pelias_openstreetmap + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + openaddresses: + image: pelias/openaddresses:master + container_name: pelias_openaddresses + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + csv-importer: + image: pelias/csv-importer:master + container_name: pelias_csv_importer + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + - "./blacklist/:/data/blacklist" + transit: + image: pelias/transit:master + container_name: pelias_transit + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + polylines: + image: pelias/polylines:master + container_name: pelias_polylines + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + interpolation: + image: pelias/interpolation:master + container_name: pelias_interpolation + user: "${DOCKER_USER}" + restart: always + environment: [ "PORT=4300" ] + ports: [ "127.0.0.1:4300:4300" ] + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + pip: + image: pelias/pip-service:master + container_name: pelias_pip-service + user: "${DOCKER_USER}" + restart: always + environment: [ "PORT=4200" ] + ports: [ "127.0.0.1:4200:4200" ] + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + elasticsearch: + image: pelias/elasticsearch:7.16.1 + container_name: pelias_elasticsearch + user: "${DOCKER_USER}" + restart: always + ports: [ "127.0.0.1:9200:9200", "127.0.0.1:9300:9300" ] + volumes: + - "./elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro" + - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" + ulimits: + memlock: + soft: -1 + hard: -1 + nofile: + soft: 65536 + hard: 65536 + cap_add: [ "IPC_LOCK" ] + security_opt: + - seccomp=unconfined diff --git a/projects/lithuania/elasticsearch.yml b/projects/lithuania/elasticsearch.yml new file mode 100644 index 00000000..ca137940 --- /dev/null +++ b/projects/lithuania/elasticsearch.yml @@ -0,0 +1,4 @@ +network.host: 0.0.0.0 +bootstrap.memory_lock: true +indices.breaker.fielddata.limit: 85% +indices.fielddata.cache.size: 75% \ No newline at end of file diff --git a/projects/lithuania/pelias.json b/projects/lithuania/pelias.json new file mode 100644 index 00000000..3ed2b9bd --- /dev/null +++ b/projects/lithuania/pelias.json @@ -0,0 +1,59 @@ +{ + "logger": { + "level": "debug", + "timestamp": false + }, + "esclient": { + "apiVersion": "7.5", + "hosts": [ + { "host": "elasticsearch" } + ] + }, + "elasticsearch": { + "settings": { + "index": { + "refresh_interval": "10s", + "number_of_replicas": "0", + "number_of_shards": "1" + } + } + }, + "api": { + "services": { + "pip": { "url": "http://pip:4200" }, + "libpostal": { "url": "http://libpostal:4400" }, + "placeholder": { "url": "http://placeholder:4100" }, + "interpolation": { "url": "http://interpolation:4300" } + } + }, + "imports": { + "geonames": { + "datapath": "/data/geonames", + "countryCode": "LT" + }, + "openstreetmap": { + "download": [ + { "sourceURL": "http://download.geofabrik.de/europe/lithuania-latest.osm.pbf" } + ], + "leveldbpath": "/tmp", + "datapath": "/data/openstreetmap", + "import": [{ + "filename": "lithuania-latest.osm.pbf" + }] + }, + "openaddresses": { + "datapath": "/data/openaddresses", + "files": ["lt/countrywide.csv", "lt/city_of_vilnius.csv"] + }, + "polyline": { + "datapath": "/data/polylines", + "files": [ "extract.0sv" ] + }, + "whosonfirst": { + "datapath": "/data/whosonfirst", + "countryCode": "LT", + "importPostalcodes": false, + "importPlace": [ "85633269" ] + } + } +} From f83480d92a282b3e637c224bdc5291408e98c24e Mon Sep 17 00:00:00 2001 From: borisPerlov <49359486+borisPerlov@users.noreply.github.com> Date: Fri, 7 Jul 2023 16:10:57 +0300 Subject: [PATCH 64/98] new project : Israel (#296) * israel init * Update README.md * Update README.md * some changes * Add query example * Update pelias.json * Update pelias.json --------- Co-authored-by: borisp --- projects/israel/.env | 2 + projects/israel/README.md | 32 +++++++++ projects/israel/blacklist/osm.txt | 0 projects/israel/docker-compose.yml | 112 +++++++++++++++++++++++++++++ projects/israel/elasticsearch.yml | 4 ++ projects/israel/pelias.json | 82 +++++++++++++++++++++ 6 files changed, 232 insertions(+) create mode 100644 projects/israel/.env create mode 100644 projects/israel/README.md create mode 100644 projects/israel/blacklist/osm.txt create mode 100644 projects/israel/docker-compose.yml create mode 100644 projects/israel/elasticsearch.yml create mode 100644 projects/israel/pelias.json diff --git a/projects/israel/.env b/projects/israel/.env new file mode 100644 index 00000000..a88e82a3 --- /dev/null +++ b/projects/israel/.env @@ -0,0 +1,2 @@ +COMPOSE_PROJECT_NAME=pelias +DATA_DIR=/tmp/pelias/israel diff --git a/projects/israel/README.md b/projects/israel/README.md new file mode 100644 index 00000000..eef958fb --- /dev/null +++ b/projects/israel/README.md @@ -0,0 +1,32 @@ +# Israel area + +This project is configured to download/prepare/build a complete Pelias installation for Israel. + +# Setup + +Please refer to the instructions at in order to install and configure your docker environment. + +The minimum configuration required in order to run this project are [installing prerequisites](https://github.com/pelias/docker#prerequisites), [install the pelias command](https://github.com/pelias/docker#installing-the-pelias-command) and [configure the environment](https://github.com/pelias/docker#configure-environment). + +Please ensure that's all working fine before continuing. + +# Run a Build + +To run a complete build, execute the following commands: + +```bash +pelias compose pull +pelias elastic start +pelias elastic wait +pelias elastic create +pelias download all +pelias prepare all +pelias import all +pelias compose up +``` + +# Make an Example Query + +You can now make queries against your new Pelias build: + + diff --git a/projects/israel/blacklist/osm.txt b/projects/israel/blacklist/osm.txt new file mode 100644 index 00000000..e69de29b diff --git a/projects/israel/docker-compose.yml b/projects/israel/docker-compose.yml new file mode 100644 index 00000000..5399075d --- /dev/null +++ b/projects/israel/docker-compose.yml @@ -0,0 +1,112 @@ +version: '3' +networks: + default: + driver: bridge +services: + libpostal: + image: pelias/libpostal-service + container_name: pelias_libpostal + user: "${DOCKER_USER}" + restart: always + ports: [ "127.0.0.1:4400:4400" ] + schema: + image: pelias/schema:master + container_name: pelias_schema + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + api: + image: pelias/api:master + container_name: pelias_api + user: "${DOCKER_USER}" + restart: always + environment: [ "PORT=4000" ] + ports: [ "0.0.0.0:4000:4000" ] + volumes: + - "./pelias.json:/code/pelias.json" + placeholder: + image: pelias/placeholder:master + container_name: pelias_placeholder + user: "${DOCKER_USER}" + restart: always + environment: [ "PORT=4100" ] + ports: [ "127.0.0.1:4100:4100" ] + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + - "./blacklist/:/data/blacklist" + whosonfirst: + image: pelias/whosonfirst:master + container_name: pelias_whosonfirst + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + openstreetmap: + image: pelias/openstreetmap:master + container_name: pelias_openstreetmap + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + openaddresses: + image: pelias/openaddresses:master + container_name: pelias_openaddresses + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + csv-importer: + image: pelias/csv-importer:master + container_name: pelias_csv_importer + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + - "./blacklist/:/data/blacklist" + polylines: + image: pelias/polylines:master + container_name: pelias_polylines + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + interpolation: + image: pelias/interpolation:master + container_name: pelias_interpolation + user: "${DOCKER_USER}" + restart: always + environment: [ "PORT=4300" ] + ports: [ "127.0.0.1:4300:4300" ] + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + pip: + image: pelias/pip-service:master + container_name: pelias_pip-service + user: "${DOCKER_USER}" + restart: always + environment: [ "PORT=4200" ] + ports: [ "127.0.0.1:4200:4200" ] + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + elasticsearch: + image: pelias/elasticsearch:7.16.1 + container_name: pelias_elasticsearch + user: "${DOCKER_USER}" + restart: always + ports: [ "127.0.0.1:9200:9200", "127.0.0.1:9300:9300" ] + volumes: + - "./elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro" + - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" + ulimits: + memlock: + soft: -1 + hard: -1 + nofile: + soft: 65536 + hard: 65536 + cap_add: [ "IPC_LOCK" ] + security_opt: + - seccomp=unconfined diff --git a/projects/israel/elasticsearch.yml b/projects/israel/elasticsearch.yml new file mode 100644 index 00000000..ca137940 --- /dev/null +++ b/projects/israel/elasticsearch.yml @@ -0,0 +1,4 @@ +network.host: 0.0.0.0 +bootstrap.memory_lock: true +indices.breaker.fielddata.limit: 85% +indices.fielddata.cache.size: 75% \ No newline at end of file diff --git a/projects/israel/pelias.json b/projects/israel/pelias.json new file mode 100644 index 00000000..5e54f69b --- /dev/null +++ b/projects/israel/pelias.json @@ -0,0 +1,82 @@ +{ + "logger": { + "level": "debug", + "timestamp": false + }, + "esclient": { + "apiVersion": "7.5", + "hosts": [ + { + "host": "elasticsearch" + } + ] + }, + "elasticsearch": { + "settings": { + "index": { + "refresh_interval": "10s", + "number_of_replicas": "0", + "number_of_shards": "1" + } + } + }, + "api": { + "services": { + "pip": { + "url": "http://pip:4200" + }, + "libpostal": { + "url": "http://libpostal:4400" + }, + "placeholder": { + "url": "http://placeholder:4100" + }, + "interpolation": { + "url": "http://interpolation:4300" + } + } + }, + "imports": { + "adminLookup": { + "enabled": true + }, + "geonames": { + "datapath": "/data/geonames", + "countryCode": "IL" + }, + "openstreetmap": { + "download": [ + { + "sourceURL": "http://download.geofabrik.de/asia/israel-and-palestine-latest.osm.pbf" + } + ], + "leveldbpath": "/tmp", + "datapath": "/data/openstreetmap", + "import": [ + { + "filename": "israel-and-palestine-latest.osm.pbf" + } + ] + }, + "openaddresses": { + "datapath": "/data/openaddresses", + "files": [ + "il/city_of_tel_aviv.csv" + ] + }, + "polyline": { + "datapath": "/data/polylines", + "files": [ + "extract.0sv" + ] + }, + "whosonfirst": { + "datapath": "/data/whosonfirst", + "countryCode": "IL", + "importPostalcodes": true, + "importPlace": [ + "85632315" + ] + } + } +} From 47f0f98036bc674e5b51fd64e439dda7d186a786 Mon Sep 17 00:00:00 2001 From: Aidar Zamirbekov <32789734+AIDARXAN@users.noreply.github.com> Date: Sat, 8 Jul 2023 16:55:05 +0600 Subject: [PATCH 65/98] Added Kyrgyzstan country (#260) * Added Kyrgyzstan to projects * MODIFIED readme.md for kyrgyzstan * Update .env. Added COMPOSE_PROJECT_NAME. --------- Co-authored-by: Aidar --- projects/kyrgyzstan/.env | 2 + projects/kyrgyzstan/README.md | 32 +++++++ projects/kyrgyzstan/docker-compose.yml | 112 +++++++++++++++++++++++++ projects/kyrgyzstan/elasticsearch.yml | 4 + projects/kyrgyzstan/pelias.json | 62 ++++++++++++++ 5 files changed, 212 insertions(+) create mode 100644 projects/kyrgyzstan/.env create mode 100644 projects/kyrgyzstan/README.md create mode 100644 projects/kyrgyzstan/docker-compose.yml create mode 100644 projects/kyrgyzstan/elasticsearch.yml create mode 100644 projects/kyrgyzstan/pelias.json diff --git a/projects/kyrgyzstan/.env b/projects/kyrgyzstan/.env new file mode 100644 index 00000000..4b1c81de --- /dev/null +++ b/projects/kyrgyzstan/.env @@ -0,0 +1,2 @@ +COMPOSE_PROJECT_NAME=pelias +DATA_DIR=/tmp/pelias/kyrgyzstan diff --git a/projects/kyrgyzstan/README.md b/projects/kyrgyzstan/README.md new file mode 100644 index 00000000..d6296c9f --- /dev/null +++ b/projects/kyrgyzstan/README.md @@ -0,0 +1,32 @@ +# Kyrgyzstan country + +This project is configured to download/prepare/build a complete Pelias installation for Kyrgyzstan. + +# Setup + +Please refer to the instructions at in order to install and configure your docker environment. + +The minimum configuration required in order to run this project are [installing prerequisites](https://github.com/pelias/docker#prerequisites), [install the pelias command](https://github.com/pelias/docker#installing-the-pelias-command) and [configure the environment](https://github.com/pelias/docker#configure-environment). + +Please ensure that's all working fine before continuing. + +# Run a Build + +To run a complete build, execute the following commands: + +```bash +pelias compose pull +pelias elastic start +pelias elastic wait +pelias elastic create +pelias download all +pelias prepare all +pelias import all +pelias compose up +``` + +# Make an Example Query + +You can now make queries against your new Pelias build: + + diff --git a/projects/kyrgyzstan/docker-compose.yml b/projects/kyrgyzstan/docker-compose.yml new file mode 100644 index 00000000..8ffc4b65 --- /dev/null +++ b/projects/kyrgyzstan/docker-compose.yml @@ -0,0 +1,112 @@ +version: '3' +networks: + default: + driver: bridge +services: + libpostal: + image: pelias/libpostal-service + container_name: pelias_libpostal + user: "${DOCKER_USER}" + restart: always + ports: [ "4400:4400" ] + schema: + image: pelias/schema:master + container_name: pelias_schema + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + api: + image: pelias/api:master + container_name: pelias_api + user: "${DOCKER_USER}" + restart: always + environment: [ "PORT=4000" ] + ports: [ "4000:4000" ] + volumes: + - "./pelias.json:/code/pelias.json" + placeholder: + image: pelias/placeholder:master + container_name: pelias_placeholder + user: "${DOCKER_USER}" + restart: always + environment: [ "PORT=4100" ] + ports: [ "4100:4100" ] + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + - "./blacklist/:/data/blacklist" + whosonfirst: + image: pelias/whosonfirst:master + container_name: pelias_whosonfirst + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + openstreetmap: + image: pelias/openstreetmap:master + container_name: pelias_openstreetmap + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + openaddresses: + image: pelias/openaddresses:master + container_name: pelias_openaddresses + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + csv-importer: + image: pelias/csv-importer:master + container_name: pelias_csv_importer + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + - "./blacklist/:/data/blacklist" + polylines: + image: pelias/polylines:master + container_name: pelias_polylines + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + interpolation: + image: pelias/interpolation:master + container_name: pelias_interpolation + user: "${DOCKER_USER}" + restart: always + environment: [ "PORT=4300" ] + ports: [ "4300:4300" ] + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + pip: + image: pelias/pip-service:master + container_name: pelias_pip-service + user: "${DOCKER_USER}" + restart: always + environment: [ "PORT=4200" ] + ports: [ "4200:4200" ] + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + elasticsearch: + image: pelias/elasticsearch:7.5.1 + container_name: pelias_elasticsearch + user: "${DOCKER_USER}" + restart: always + ports: [ "9200:9200", "9300:9300" ] + volumes: + - "./elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro" + - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" + ulimits: + memlock: + soft: -1 + hard: -1 + nofile: + soft: 65536 + hard: 65536 + cap_add: [ "IPC_LOCK" ] + security_opt: + - seccomp=unconfined diff --git a/projects/kyrgyzstan/elasticsearch.yml b/projects/kyrgyzstan/elasticsearch.yml new file mode 100644 index 00000000..ca137940 --- /dev/null +++ b/projects/kyrgyzstan/elasticsearch.yml @@ -0,0 +1,4 @@ +network.host: 0.0.0.0 +bootstrap.memory_lock: true +indices.breaker.fielddata.limit: 85% +indices.fielddata.cache.size: 75% \ No newline at end of file diff --git a/projects/kyrgyzstan/pelias.json b/projects/kyrgyzstan/pelias.json new file mode 100644 index 00000000..7c86fd79 --- /dev/null +++ b/projects/kyrgyzstan/pelias.json @@ -0,0 +1,62 @@ +{ + "logger": { + "level": "debug", + "timestamp": false + }, + "esclient": { + "apiVersion": "7.5", + "hosts": [ + { "host": "elasticsearch" } + ] + }, + "elasticsearch": { + "settings": { + "index": { + "refresh_interval": "10s", + "number_of_replicas": "0", + "number_of_shards": "1" + } + } + }, + "api": { + "services": { + "pip": { "url": "http://pip:4200" }, + "libpostal": { "url": "http://libpostal:4400" }, + "placeholder": { "url": "http://placeholder:4100" }, + "interpolation": { "url": "http://interpolation:4300" } + } + }, + "imports": { + "adminLookup": { + "enabled": true + }, + "geonames": { + "datapath": "/data/geonames", + "countryCode": "KG" + }, + "openstreetmap": { + "download": [ + { "sourceURL": "https://download.geofabrik.de/asia/kyrgyzstan-latest.osm.pbf" } + ], + "leveldbpath": "/tmp", + "datapath": "/data/openstreetmap", + "import": [{ + "filename": "kyrgyzstan-latest.osm.pbf" + }] + }, + "openaddresses": { + "datapath": "/data/openaddresses", + "files": ["kg/countrywide.csv"] + }, + "polyline": { + "datapath": "/data/polylines", + "files": [ "extract.0sv" ] + }, + "whosonfirst": { + "datapath": "/data/whosonfirst", + "countryCode": "KG", + "importPostalcodes": true, + "importPlace": [ "85632761" ] + } + } +} From 78de3e780e5eff8633d8749b0d8277bd58c0d020 Mon Sep 17 00:00:00 2001 From: Wel Rachid Date: Tue, 18 Jul 2023 11:34:43 +0200 Subject: [PATCH 66/98] projects: Add Denmark (#302) * added project denmark added project denmark * Docker compose part of docker docker-compose is no longer standalone. It comes with docker, and so should the commands be. * removed denmark removed denmark * reverted to docker-compose reverted to normal docker-compose * Added project denmark Added project denmark * Update pelias.json Added Denmark's who's on first id. --- projects/denmark/.env | 2 + projects/denmark/README.md | 32 ++++++++ projects/denmark/docker-compose.yml | 112 ++++++++++++++++++++++++++++ projects/denmark/elasticsearch.yml | 4 + projects/denmark/pelias.json | 62 +++++++++++++++ 5 files changed, 212 insertions(+) create mode 100644 projects/denmark/.env create mode 100644 projects/denmark/README.md create mode 100644 projects/denmark/docker-compose.yml create mode 100644 projects/denmark/elasticsearch.yml create mode 100644 projects/denmark/pelias.json diff --git a/projects/denmark/.env b/projects/denmark/.env new file mode 100644 index 00000000..c27c8edb --- /dev/null +++ b/projects/denmark/.env @@ -0,0 +1,2 @@ +COMPOSE_PROJECT_NAME=pelias +DATA_DIR=./data diff --git a/projects/denmark/README.md b/projects/denmark/README.md new file mode 100644 index 00000000..c857b72e --- /dev/null +++ b/projects/denmark/README.md @@ -0,0 +1,32 @@ +# Norway area + +This project is configured to download/prepare/build a complete Pelias installation for Norway. + +# Setup + +Please refer to the instructions at in order to install and configure your docker environment. + +The minimum configuration required in order to run this project are [installing prerequisites](https://github.com/pelias/docker#prerequisites), [install the pelias command](https://github.com/pelias/docker#installing-the-pelias-command) and [configure the environment](https://github.com/pelias/docker#configure-environment). + +Please ensure that's all working fine before continuing. + +# Run a Build + +To run a complete build, execute the following commands: + +```bash +pelias compose pull +pelias elastic start +pelias elastic wait +pelias elastic create +pelias download all +pelias prepare all +pelias import all +pelias compose up +``` + +# Make an Example Query + +You can now make queries against your new Pelias build: + + diff --git a/projects/denmark/docker-compose.yml b/projects/denmark/docker-compose.yml new file mode 100644 index 00000000..5399075d --- /dev/null +++ b/projects/denmark/docker-compose.yml @@ -0,0 +1,112 @@ +version: '3' +networks: + default: + driver: bridge +services: + libpostal: + image: pelias/libpostal-service + container_name: pelias_libpostal + user: "${DOCKER_USER}" + restart: always + ports: [ "127.0.0.1:4400:4400" ] + schema: + image: pelias/schema:master + container_name: pelias_schema + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + api: + image: pelias/api:master + container_name: pelias_api + user: "${DOCKER_USER}" + restart: always + environment: [ "PORT=4000" ] + ports: [ "0.0.0.0:4000:4000" ] + volumes: + - "./pelias.json:/code/pelias.json" + placeholder: + image: pelias/placeholder:master + container_name: pelias_placeholder + user: "${DOCKER_USER}" + restart: always + environment: [ "PORT=4100" ] + ports: [ "127.0.0.1:4100:4100" ] + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + - "./blacklist/:/data/blacklist" + whosonfirst: + image: pelias/whosonfirst:master + container_name: pelias_whosonfirst + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + openstreetmap: + image: pelias/openstreetmap:master + container_name: pelias_openstreetmap + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + openaddresses: + image: pelias/openaddresses:master + container_name: pelias_openaddresses + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + csv-importer: + image: pelias/csv-importer:master + container_name: pelias_csv_importer + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + - "./blacklist/:/data/blacklist" + polylines: + image: pelias/polylines:master + container_name: pelias_polylines + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + interpolation: + image: pelias/interpolation:master + container_name: pelias_interpolation + user: "${DOCKER_USER}" + restart: always + environment: [ "PORT=4300" ] + ports: [ "127.0.0.1:4300:4300" ] + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + pip: + image: pelias/pip-service:master + container_name: pelias_pip-service + user: "${DOCKER_USER}" + restart: always + environment: [ "PORT=4200" ] + ports: [ "127.0.0.1:4200:4200" ] + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + elasticsearch: + image: pelias/elasticsearch:7.16.1 + container_name: pelias_elasticsearch + user: "${DOCKER_USER}" + restart: always + ports: [ "127.0.0.1:9200:9200", "127.0.0.1:9300:9300" ] + volumes: + - "./elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro" + - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" + ulimits: + memlock: + soft: -1 + hard: -1 + nofile: + soft: 65536 + hard: 65536 + cap_add: [ "IPC_LOCK" ] + security_opt: + - seccomp=unconfined diff --git a/projects/denmark/elasticsearch.yml b/projects/denmark/elasticsearch.yml new file mode 100644 index 00000000..ca137940 --- /dev/null +++ b/projects/denmark/elasticsearch.yml @@ -0,0 +1,4 @@ +network.host: 0.0.0.0 +bootstrap.memory_lock: true +indices.breaker.fielddata.limit: 85% +indices.fielddata.cache.size: 75% \ No newline at end of file diff --git a/projects/denmark/pelias.json b/projects/denmark/pelias.json new file mode 100644 index 00000000..7a172e4a --- /dev/null +++ b/projects/denmark/pelias.json @@ -0,0 +1,62 @@ +{ + "logger": { + "level": "debug", + "timestamp": false + }, + "esclient": { + "apiVersion": "7.5", + "hosts": [ + { "host": "elasticsearch" } + ] + }, + "elasticsearch": { + "settings": { + "index": { + "refresh_interval": "10s", + "number_of_replicas": "0", + "number_of_shards": "1" + } + } + }, + "api": { + "services": { + "pip": { "url": "http://pip:4200" }, + "libpostal": { "url": "http://libpostal:4400" }, + "placeholder": { "url": "http://placeholder:4100" }, + "interpolation": { "url": "http://interpolation:4300" } + } + }, + "imports": { + "adminLookup": { + "enabled": true + }, + "geonames": { + "datapath": "/data/geonames", + "countryCode": "DK" + }, + "openstreetmap": { + "download": [ + { "sourceURL": "http://download.geofabrik.de/europe/denmark-latest.osm.pbf" } + ], + "leveldbpath": "/tmp", + "datapath": "/data/openstreetmap", + "import": [{ + "filename": "denmark-latest.osm.pbf" + }] + }, + "openaddresses": { + "datapath": "/data/openaddresses", + "files": ["dk/countrywide.csv"] + }, + "polyline": { + "datapath": "/data/polylines", + "files": [ "extract.0sv" ] + }, + "whosonfirst": { + "datapath": "/data/whosonfirst", + "countryCode": "DK", + "importPostalcodes": true, + "importPlace": [ "85633121" ] + } + } +} From ad4d4c5e8e333cb50c17bed612bb56583d73dc49 Mon Sep 17 00:00:00 2001 From: Sean Killeen Date: Tue, 31 Oct 2023 03:31:02 -0400 Subject: [PATCH 67/98] Fix typo in readme (#326) Found while browsing the docs (also, thanks for the docs!) --- projects/north-america/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/north-america/README.md b/projects/north-america/README.md index 682bd2b2..34171903 100644 --- a/projects/north-america/README.md +++ b/projects/north-america/README.md @@ -4,7 +4,7 @@ This project is configured to download/prepare/build a complete Pelias installat As a fairly large build, this will require significant resources to complete quickly. It can still run on a personal computer with 8GB+ RAM, but will take a while. It will require 300GB or so of disk space. -Running an interpolation build of this side would also take many days +Running an interpolation build of this size would also take many days Additionally, it requires a polylines file generated with [Valhalla](https://github.com/valhalla). From 2df758b1b0ff6b23c4ec1ae6c69bf0dce6314a6c Mon Sep 17 00:00:00 2001 From: Michael Kirk Date: Wed, 31 May 2023 14:41:50 -0700 Subject: [PATCH 68/98] support modern docker compose From: https://docs.docker.com/compose/gettingstarted/ > Compose V1 no longer receives updates and will not be available in new releases of Docker Desktop after June 2023. Fixes error like: line 20: docker-compose: command not found --- README.md | 28 ++++++++++++++-------------- cmd/docker.sh | 24 ++++++++++++++---------- lib/env.sh | 2 +- 3 files changed, 29 insertions(+), 25 deletions(-) diff --git a/README.md b/README.md index cacf8385..b2c50a0f 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ We think open data, open source, and open strategy win over proprietary solution # Pelias in Docker -This repository contains a framework for downloading/preparing and building the [Pelias Geocoder](https://github.com/pelias/pelias) using Docker and [Docker Compose](https://github.com/docker/compose#docker-compose). +This repository contains a framework for downloading/preparing and building the [Pelias Geocoder](https://github.com/pelias/pelias) using Docker and [Docker Compose](https://github.com/docker/compose#docker-compose-v2). ## Projects @@ -36,7 +36,7 @@ Once you have successfully completed a small build you can use this as a base to ## Prerequisites -You will need to have a [modern version of `docker`](https://docs.docker.com/engine/release-notes/) and a [modern version of `docker-compose`](https://github.com/docker/compose/blob/master/CHANGELOG.md) installed before continuing. If you are not using the latest version, please mention that in any bugs reports. +You will need to have a [modern version of `docker`](https://docs.docker.com/engine/release-notes/) and a [modern version of `docker compose`](https://github.com/docker/compose/releases) installed before continuing. If you are not using the latest version, please mention that in any bugs reports. This project supports Linux and Mac OSX operatings systems. Windows is currently [not supported](https://github.com/pelias/docker/issues/124). @@ -214,11 +214,11 @@ Usage: pelias [command] [action] [options] compose logs display container logs compose ps list containers compose top display the running processes of a container - compose exec execute an arbitrary docker-compose command - compose run execute a docker-compose run command - compose up start one or more docker-compose service(s) - compose kill kill one or more docker-compose service(s) - compose down stop all docker-compose service(s) + compose exec execute an arbitrary docker compose command + compose run execute a docker compose run command + compose up start one or more docker compose service(s) + compose kill kill one or more docker compose service(s) + compose down stop all docker compose service(s) download wof (re)download whosonfirst data download oa (re)download openaddresses data download osm (re)download openstreetmap data @@ -251,20 +251,20 @@ Usage: pelias [command] [action] [options] ### Compose commands -The compose commands are available as a shortcut to running `docker-compose` directly, they will also ensure that your environment is correctly configured. +The compose commands are available as a shortcut to running `docker compose` directly, they will also ensure that your environment is correctly configured. -See the docker-compose documentation for more info: https://docs.docker.com/compose/overview/ +See the docker compose documentation for more info: https://docs.docker.com/compose/overview/ ```bash pelias compose pull update all docker images pelias compose logs display container logs pelias compose ps list containers pelias compose top display the running processes of a container -pelias compose exec execute an arbitrary docker-compose command -pelias compose run execute a docker-compose run command -pelias compose up start one or more docker-compose service(s) -pelias compose kill kill one or more docker-compose service(s) -pelias compose down stop all docker-compose service(s) +pelias compose exec execute an arbitrary docker compose command +pelias compose run execute a docker compose run command +pelias compose up start one or more docker compose service(s) +pelias compose kill kill one or more docker compose service(s) +pelias compose down stop all docker compose service(s) ``` ### Download commands diff --git a/cmd/docker.sh b/cmd/docker.sh index 83cc4c6e..2b809a71 100644 --- a/cmd/docker.sh +++ b/cmd/docker.sh @@ -17,18 +17,22 @@ register 'compose' 'ps' 'list containers' compose_ps function compose_top(){ compose_exec top $@; } register 'compose' 'top' 'display the running processes of a container' compose_top -function compose_exec(){ docker-compose $@; } -register 'compose' 'exec' 'execute an arbitrary docker-compose command' compose_exec +function compose_exec(){ + # fall back to legacy `docker-compose` when modern `docker compose` invocation isn't available + local _compose_exec=$(docker compose > /dev/null 2>&1 && echo "docker compose" || echo "docker-compose") + $_compose_exec $@; +} +register 'compose' 'exec' 'execute an arbitrary `docker compose` command' compose_exec -function compose_run(){ net_init; docker-compose run --rm $@; } -register 'compose' 'run' 'execute a docker-compose run command' compose_run +function compose_run(){ net_init; compose_exec run --rm $@; } +register 'compose' 'run' 'execute a `docker compose` run command' compose_run -function compose_up(){ docker-compose up -d $@; } -register 'compose' 'up' 'start one or more docker-compose service(s)' compose_up +function compose_up(){ compose_exec up -d $@; } +register 'compose' 'up' 'start one or more `docker compose` service(s)' compose_up -function compose_kill(){ docker-compose kill $@; } -register 'compose' 'kill' 'kill one or more docker-compose service(s)' compose_kill +function compose_kill(){ compose_exec kill $@; } +register 'compose' 'kill' 'kill one or more `docker compose` service(s)' compose_kill -function compose_down(){ docker-compose down; } -register 'compose' 'down' 'stop all docker-compose service(s)' compose_down +function compose_down(){ compose_exec down; } +register 'compose' 'down' 'stop all `docker compose` service(s)' compose_down diff --git a/lib/env.sh b/lib/env.sh index e935f9f5..32dec0aa 100644 --- a/lib/env.sh +++ b/lib/env.sh @@ -56,7 +56,7 @@ function env_load_stream(){ # ensure locale is correctly set? # export LC_ALL=en_US.UTF-8 -# load DATA_DIR and other vars from docker-compose .env file +# load DATA_DIR and other vars from docker compose .env file # note: strips comments and empty lines [ -f .env ] && env_load_stream < <(grep -v '^$\|^\s*$\#' .env) From 5848b66825cdfb441dd2c3d05fd6dd5a2b1e8c69 Mon Sep 17 00:00:00 2001 From: Peter Johnson Date: Tue, 28 Nov 2023 11:28:56 +0100 Subject: [PATCH 69/98] docker: support modern versions of compose --- cmd/docker.sh | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/cmd/docker.sh b/cmd/docker.sh index 2b809a71..dbc456d7 100644 --- a/cmd/docker.sh +++ b/cmd/docker.sh @@ -17,10 +17,15 @@ register 'compose' 'ps' 'list containers' compose_ps function compose_top(){ compose_exec top $@; } register 'compose' 'top' 'display the running processes of a container' compose_top +# the 'docker compose' subcommand is now the recommended method of calling compose. +# if not available, we fallback to the legacy 'docker-compose' command. function compose_exec(){ - # fall back to legacy `docker-compose` when modern `docker compose` invocation isn't available - local _compose_exec=$(docker compose > /dev/null 2>&1 && echo "docker compose" || echo "docker-compose") - $_compose_exec $@; + NATIVE_COMPOSE_VERSION=$(docker compose version 2> /dev/null || true) + if [ -z "$NATIVE_COMPOSE_VERSION" ]; then + docker-compose $@; + else + docker compose $@; + fi } register 'compose' 'exec' 'execute an arbitrary `docker compose` command' compose_exec From 6430b945c85584658b8feb3b61b6efa9aa960a42 Mon Sep 17 00:00:00 2001 From: missinglink Date: Tue, 14 Dec 2021 13:37:00 +0100 Subject: [PATCH 70/98] feat(ci): github actions workflow for building elastic docker images --- .../workflows/elasticsearch-image-builder.yml | 24 +++++++++++ images/elasticsearch/7.17.15/Dockerfile | 41 +++++++++++++++++++ .../elasticsearch/7.17.15/elasticsearch.yml | 9 ++++ 3 files changed, 74 insertions(+) create mode 100644 .github/workflows/elasticsearch-image-builder.yml create mode 100644 images/elasticsearch/7.17.15/Dockerfile create mode 100644 images/elasticsearch/7.17.15/elasticsearch.yml diff --git a/.github/workflows/elasticsearch-image-builder.yml b/.github/workflows/elasticsearch-image-builder.yml new file mode 100644 index 00000000..27fb4f50 --- /dev/null +++ b/.github/workflows/elasticsearch-image-builder.yml @@ -0,0 +1,24 @@ +name: Build Docker Images +on: + push: + paths: + - "images/elasticsearch/**" + - ".github/workflows/**" +jobs: + build: + runs-on: ubuntu-20.04 + strategy: + matrix: + elastic-version: + - "7.17.15" + env: + DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} + DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 100 + - name: "Build elasticsearch@${{ matrix.elastic-version }}" + run: | + cd images/elasticsearch/${{ matrix.elastic-version }} + curl "https://raw.githubusercontent.com/pelias/ci-tools/master/build-docker-images.sh" | bash - diff --git a/images/elasticsearch/7.17.15/Dockerfile b/images/elasticsearch/7.17.15/Dockerfile new file mode 100644 index 00000000..9825ac65 --- /dev/null +++ b/images/elasticsearch/7.17.15/Dockerfile @@ -0,0 +1,41 @@ +# see: https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html + +# base image +FROM docker.elastic.co/elasticsearch/elasticsearch:7.17.15 +USER root + +# environmental settings +ENV ES_JAVA_OPTS '-Xms512m -Xmx512m' +ENV cluster.name 'pelias-dev' +ENV discovery.type 'single-node' +ENV bootstrap.memory_lock 'true' +RUN echo 'vm.max_map_count=262144' >> /etc/sysctl.conf + +# configure plugins +RUN /usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-icu +RUN /usr/share/elasticsearch/bin/elasticsearch-plugin install repository-s3 --batch + +# elasticsearch config +ADD elasticsearch.yml /usr/share/elasticsearch/config/ +RUN chown elasticsearch:elasticsearch config/elasticsearch.yml + +## set permissions so any user can run elasticsearch +# add read permissions to all files in dir +RUN chmod go+r /usr/share/elasticsearch -R + +# add write permissions to config, log & data dirs +RUN chmod go+w /usr/share/elasticsearch \ + /usr/share/elasticsearch/config \ + /usr/share/elasticsearch/logs \ + /usr/share/elasticsearch/data + +# add list permissions to directories +RUN chmod go+x /usr/share/elasticsearch \ + /usr/share/elasticsearch/config \ + /usr/share/elasticsearch/config/repository-s3 + +# add execute permissions to bins +RUN chmod go+x /usr/share/elasticsearch/bin/* + +# run as elasticsearch user +USER elasticsearch diff --git a/images/elasticsearch/7.17.15/elasticsearch.yml b/images/elasticsearch/7.17.15/elasticsearch.yml new file mode 100644 index 00000000..6086c701 --- /dev/null +++ b/images/elasticsearch/7.17.15/elasticsearch.yml @@ -0,0 +1,9 @@ +bootstrap.memory_lock: true +network.host: 0.0.0.0 +http.port: 9200 +node.master: true +node.data: true +thread_pool: + write: + queue_size: 1000 +indices.query.bool.max_clause_count: 4000 From 6a99d38348b25fa3a8cc6e1fac44e4348daa1221 Mon Sep 17 00:00:00 2001 From: Peter Johnson Date: Thu, 30 Nov 2023 14:11:56 +0100 Subject: [PATCH 71/98] actions: disable image-builder workflow --- .../workflows/elasticsearch-image-builder.yml | 49 ++++++++++--------- 1 file changed, 25 insertions(+), 24 deletions(-) diff --git a/.github/workflows/elasticsearch-image-builder.yml b/.github/workflows/elasticsearch-image-builder.yml index 27fb4f50..a4cb1efe 100644 --- a/.github/workflows/elasticsearch-image-builder.yml +++ b/.github/workflows/elasticsearch-image-builder.yml @@ -1,24 +1,25 @@ -name: Build Docker Images -on: - push: - paths: - - "images/elasticsearch/**" - - ".github/workflows/**" -jobs: - build: - runs-on: ubuntu-20.04 - strategy: - matrix: - elastic-version: - - "7.17.15" - env: - DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} - DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} - steps: - - uses: actions/checkout@v2 - with: - fetch-depth: 100 - - name: "Build elasticsearch@${{ matrix.elastic-version }}" - run: | - cd images/elasticsearch/${{ matrix.elastic-version }} - curl "https://raw.githubusercontent.com/pelias/ci-tools/master/build-docker-images.sh" | bash - +# name: Build Docker Images +# on: +# push: +# paths: +# - "images/elasticsearch/**" +# - ".github/workflows/**" +# jobs: +# build: +# if: github.ref == 'refs/heads/master' && needs.unit-tests.result == 'success' +# runs-on: ubuntu-20.04 +# strategy: +# matrix: +# elastic-version: +# - "7.17.15" +# env: +# DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} +# DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} +# steps: +# - uses: actions/checkout@v2 +# with: +# fetch-depth: 100 +# - name: "Build elasticsearch@${{ matrix.elastic-version }}" +# run: | +# cd images/elasticsearch/${{ matrix.elastic-version }} +# curl "https://raw.githubusercontent.com/pelias/ci-tools/master/build-docker-images.sh" | bash - From dd8a29815e70c261f36f7f407d5aae917de33263 Mon Sep 17 00:00:00 2001 From: Michael Kirk Date: Mon, 11 Dec 2023 10:56:24 -0800 Subject: [PATCH 72/98] This test is not failing. Note it's sibling test was marked as passing in 627ddaba21d0163036570ee0576cf45c9c1d5ce6 --- projects/portland-metro/test_cases/search_venue.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/portland-metro/test_cases/search_venue.json b/projects/portland-metro/test_cases/search_venue.json index 7d5d3f43..c4aac0b1 100644 --- a/projects/portland-metro/test_cases/search_venue.json +++ b/projects/portland-metro/test_cases/search_venue.json @@ -5,7 +5,7 @@ "tests": [ { "id": 1, - "status": "fail", + "status": "pass", "notes": "portland international should come up for PDX", "in": { "text": "pdx" From 52bc956cdacce1bed556ed55d854d895cfb38b71 Mon Sep 17 00:00:00 2001 From: Peter Johnson Date: Tue, 12 Mar 2024 19:41:56 +0100 Subject: [PATCH 73/98] images: add pelias/elasticsearch:8.12.2-beta docker image --- images/elasticsearch/8.12.2-beta/Dockerfile | 36 +++++++++++++++++++ .../8.12.2-beta/elasticsearch.yml | 9 +++++ 2 files changed, 45 insertions(+) create mode 100644 images/elasticsearch/8.12.2-beta/Dockerfile create mode 100644 images/elasticsearch/8.12.2-beta/elasticsearch.yml diff --git a/images/elasticsearch/8.12.2-beta/Dockerfile b/images/elasticsearch/8.12.2-beta/Dockerfile new file mode 100644 index 00000000..322e7708 --- /dev/null +++ b/images/elasticsearch/8.12.2-beta/Dockerfile @@ -0,0 +1,36 @@ +# see: https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html + +# base image +FROM docker.elastic.co/elasticsearch/elasticsearch:8.12.2 +USER root + +# environmental settings +ENV ES_JAVA_OPTS '-Xms512m -Xmx512m' +ENV cluster.name 'pelias-dev' +ENV discovery.type 'single-node' +ENV bootstrap.memory_lock 'true' +RUN echo 'vm.max_map_count=262144' >> /etc/sysctl.conf + +# configure plugins +RUN /usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-icu +RUN /usr/share/elasticsearch/bin/elasticsearch-plugin install repository-s3 --batch + +# elasticsearch config +ADD elasticsearch.yml /usr/share/elasticsearch/config/ +RUN chown elasticsearch:elasticsearch config/elasticsearch.yml + +## set permissions so any user can run elasticsearch +# add read permissions to all files in dir +RUN chmod go+r /usr/share/elasticsearch -R + +# add write permissions to config, log & data dirs +RUN chmod go+w /usr/share/elasticsearch \ + /usr/share/elasticsearch/config \ + /usr/share/elasticsearch/logs \ + /usr/share/elasticsearch/data + +# add execute permissions to bins +RUN chmod go+x /usr/share/elasticsearch/bin/* + +# run as elasticsearch user +USER elasticsearch diff --git a/images/elasticsearch/8.12.2-beta/elasticsearch.yml b/images/elasticsearch/8.12.2-beta/elasticsearch.yml new file mode 100644 index 00000000..fe9a6c62 --- /dev/null +++ b/images/elasticsearch/8.12.2-beta/elasticsearch.yml @@ -0,0 +1,9 @@ +bootstrap.memory_lock: true +network.host: 0.0.0.0 +http.port: 9200 +node.roles: [ master, data ] +thread_pool: + write: + queue_size: 1000 +indices.query.bool.max_clause_count: 4000 +xpack.security.enabled: false From 99f112e5b3d0537a595fa5d50ae7723b9a1a9673 Mon Sep 17 00:00:00 2001 From: Eric Hendrickson <28794814+eric-hendrickson@users.noreply.github.com> Date: Sun, 30 Jun 2024 16:16:30 -0700 Subject: [PATCH 74/98] * feat(projects): add las-vegas-metro --- projects/las-vegas-metro/.env | 2 + projects/las-vegas-metro/README.md | 36 + projects/las-vegas-metro/docker-compose.yml | 128 ++++ projects/las-vegas-metro/pelias.json | 107 +++ .../las-vegas-metro/synonyms/custom_name.txt | 25 + .../synonyms/custom_street.txt | 107 +++ .../test_cases/search_address.json | 717 ++++++++++++++++++ .../test_cases/search_venue.json | 70 ++ 8 files changed, 1192 insertions(+) create mode 100644 projects/las-vegas-metro/.env create mode 100644 projects/las-vegas-metro/README.md create mode 100644 projects/las-vegas-metro/docker-compose.yml create mode 100644 projects/las-vegas-metro/pelias.json create mode 100644 projects/las-vegas-metro/synonyms/custom_name.txt create mode 100644 projects/las-vegas-metro/synonyms/custom_street.txt create mode 100644 projects/las-vegas-metro/test_cases/search_address.json create mode 100644 projects/las-vegas-metro/test_cases/search_venue.json diff --git a/projects/las-vegas-metro/.env b/projects/las-vegas-metro/.env new file mode 100644 index 00000000..136b49ab --- /dev/null +++ b/projects/las-vegas-metro/.env @@ -0,0 +1,2 @@ +COMPOSE_PROJECT_NAME=pelias +DATA_DIR=/tmp/pelias/portland-metro diff --git a/projects/las-vegas-metro/README.md b/projects/las-vegas-metro/README.md new file mode 100644 index 00000000..1ead3486 --- /dev/null +++ b/projects/las-vegas-metro/README.md @@ -0,0 +1,36 @@ + +# Las Vegas Metro Area + +This project is configured to download/prepare/build a complete Pelias installation for Las Vegas, Nevada (and indeed Clark County as a whole). + +# Setup + +Please refer to the instructions at https://github.com/pelias/docker in order to install and configure your docker environment. + +The minimum configuration required in order to run this project are [installing prerequisites](https://github.com/pelias/docker#prerequisites), [install the pelias command](https://github.com/pelias/docker#installing-the-pelias-command) and [configure the environment](https://github.com/pelias/docker#configure-environment). + +Please ensure that's all working fine before continuing. + +This project requires about 7 GB of disk space. + +# Run a Build + +To run a complete build, execute the following commands: + +```bash +pelias compose pull +pelias elastic start +pelias elastic wait +pelias elastic create +pelias download all +pelias prepare all +pelias import all +pelias compose up +pelias test run +``` + +# Make an Example Query + +You can now make queries against your new Pelias build: + +http://localhost:4000/v1/search?text=Las%20Vegas diff --git a/projects/las-vegas-metro/docker-compose.yml b/projects/las-vegas-metro/docker-compose.yml new file mode 100644 index 00000000..98ae9da8 --- /dev/null +++ b/projects/las-vegas-metro/docker-compose.yml @@ -0,0 +1,128 @@ +version: '3' +networks: + default: + driver: bridge +services: + libpostal: + image: pelias/libpostal-service + container_name: pelias_libpostal + user: "${DOCKER_USER}" + restart: always + ports: [ "127.0.0.1:4400:4400" ] + schema: + image: pelias/schema:master + container_name: pelias_schema + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + api: + image: pelias/api:master + container_name: pelias_api + user: "${DOCKER_USER}" + restart: always + environment: [ "PORT=4000" ] + ports: [ "0.0.0.0:4000:4000" ] + volumes: + - "./pelias.json:/code/pelias.json" + placeholder: + image: pelias/placeholder:master + container_name: pelias_placeholder + user: "${DOCKER_USER}" + restart: always + environment: [ "PORT=4100" ] + ports: [ "127.0.0.1:4100:4100" ] + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + - "./blacklist/:/data/blacklist" + whosonfirst: + image: pelias/whosonfirst:master + container_name: pelias_whosonfirst + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + - "./blacklist/:/data/blacklist" + openstreetmap: + image: pelias/openstreetmap:master + container_name: pelias_openstreetmap + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + - "./blacklist/:/data/blacklist" + openaddresses: + image: pelias/openaddresses:master + container_name: pelias_openaddresses + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + - "./blacklist/:/data/blacklist" + transit: + image: pelias/transit:master + container_name: pelias_transit + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + csv-importer: + image: pelias/csv-importer:master + container_name: pelias_csv_importer + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + - "./blacklist/:/data/blacklist" + polylines: + image: pelias/polylines:master + container_name: pelias_polylines + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + interpolation: + image: pelias/interpolation:master + container_name: pelias_interpolation + user: "${DOCKER_USER}" + restart: always + environment: [ "PORT=4300" ] + ports: [ "127.0.0.1:4300:4300" ] + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + pip: + image: pelias/pip-service:master + container_name: pelias_pip-service + user: "${DOCKER_USER}" + restart: always + environment: [ "PORT=4200" ] + ports: [ "127.0.0.1:4200:4200" ] + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + elasticsearch: + image: pelias/elasticsearch:7.16.1 + container_name: pelias_elasticsearch + user: "${DOCKER_USER}" + restart: always + ports: [ "127.0.0.1:9200:9200", "127.0.0.1:9300:9300" ] + volumes: + - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" + ulimits: + memlock: + soft: -1 + hard: -1 + nofile: + soft: 65536 + hard: 65536 + cap_add: [ "IPC_LOCK" ] + fuzzy-tester: + image: pelias/fuzzy-tester:master + container_name: pelias_fuzzy_tester + user: "${DOCKER_USER}" + restart: "no" + command: "--help" + volumes: + - "./pelias.json:/code/pelias.json" + - "./test_cases:/code/pelias/fuzzy-tester/test_cases" diff --git a/projects/las-vegas-metro/pelias.json b/projects/las-vegas-metro/pelias.json new file mode 100644 index 00000000..46de5a16 --- /dev/null +++ b/projects/las-vegas-metro/pelias.json @@ -0,0 +1,107 @@ +{ + "logger": { + "level": "info", + "timestamp": false + }, + "esclient": { + "apiVersion": "7.5", + "hosts": [ + { "host": "elasticsearch" } + ] + }, + "elasticsearch": { + "settings": { + "index": { + "refresh_interval": "10s", + "number_of_replicas": "0", + "number_of_shards": "1" + } + } + }, + "acceptance-tests": { + "endpoints": { + "docker": "http://api:4000/v1/" + } + }, + "api": { + "services": { + "placeholder": { "url": "http://placeholder:4100" }, + "pip": { "url": "http://pip:4200" }, + "interpolation": { "url": "http://interpolation:4300" }, + "libpostal": { "url": "http://libpostal:4400" } + }, + "defaultParameters": { + "focus.point.lat": 36.14737, + "focus.point.lon": -115.15546 + } + }, + "imports": { + "adminLookup": { + "enabled": true + }, + "csv": { + "datapath": "/data/csv", + "files": [], + "download": [ + "https://raw.githubusercontent.com/pelias/csv-importer/master/data/example.csv" + ] + }, + "geonames": { + "datapath": "/data/geonames", + "countryCode": "ALL" + }, + "openstreetmap": { + "download": [ + { "sourceURL": "https://download.geofabrik.de/north-america/us/nevada-240702.osm.pbf" } + ], + "leveldbpath": "/tmp", + "datapath": "/data/openstreetmap", + "import": [{ + "filename": "nevada-240702.osm.pbf" + }] + }, + "openaddresses": { + "datapath": "/data/openaddresses", + "files": [ + "us/nv/clark.csv", + "us/nv/henderson.csv", + "us/nv/las_vegas.csv" + ] + }, + "polyline": { + "datapath": "/data/polylines", + "files": [ "extract.0sv" ] + }, + "whosonfirst": { + "datapath": "/data/whosonfirst", + "importPostalcodes": true, + "countryCode": "US", + "importPlace": [ + "85688531" + ] + }, + "transit": { + "datapath": "/data/transit", + "feeds": [ + { + "layerId": "stops", + "url": "https://developer.rtcsnv.com/transitData/google_transit.zip", + "filename": "stops.txt", + "agencyId": "RTCSNV", + "agencyName": "RTC Transit", + "layerName": "Stop" + } + ] + }, + "interpolation": { + "download": { + "tiger": { + "datapath": "/data/tiger", + "states": [ + { "state_code": 32, "county_code": 3, "name": "Clark County, NV" } + ] + } + } + } + } +} diff --git a/projects/las-vegas-metro/synonyms/custom_name.txt b/projects/las-vegas-metro/synonyms/custom_name.txt new file mode 100644 index 00000000..6f7691bd --- /dev/null +++ b/projects/las-vegas-metro/synonyms/custom_name.txt @@ -0,0 +1,25 @@ + +shopping,store,shop,retail,grocery,mall + +# Transit Centers +# Rail Stations +# Misc Landmarks + +north, N +south, S +east, E +west, W +north west => northwest +north east => northeast +south west => southwest +south east => southeast +northwest, NW +northeast, NE +southwest, SW +southeast, SE + +Int'l, international + +# street names +MLK,M L King,Martin Luther King +LV,Las Vegas diff --git a/projects/las-vegas-metro/synonyms/custom_street.txt b/projects/las-vegas-metro/synonyms/custom_street.txt new file mode 100644 index 00000000..3a13de9c --- /dev/null +++ b/projects/las-vegas-metro/synonyms/custom_street.txt @@ -0,0 +1,107 @@ +first,1st +second,2nd +third,3rd +forth,4th +fifth,5th +sixth,6th +seventh,7th +eighth,8th +nineth,9th +tenth,10th +eleventh,11th +twelfth,12th +thirteenth,13th +fourteenth,14th +fifteenth,15th +sixteenth,16th +seventeenth,17th +eighteenth,18th +nineteenth,19th +twentyth,20th +twentyfirst,21st +twentysecond,22nd +twentythrid,23rd + +# USPS Suffix Abbreviations +# http://www.usps.com/ncsc/lookups/abbreviations.html#suffix +st,st.,street,str +ave,ave.,av,av.,avenue,AVNUE,AVENUE,AVENU +dr,drive,dr.,drv,driv,drives +BOULEVARD,BLVD,BOULEVARD,BOUL,BOULEVARD,BOULEVARD,BOULV +BRIDGE,BRDGE,BRG +BYPASS,BYP,BYPA,BYPAS,BYPS +CLIFF,CLF,CLIFFS,CLFS +CLUB,CLB +COMMON,CMN +CORNER,COR,CORNERS,CORS +CENTER,CEN,CENT,CENTER,CENTR,CENTRE,CNTER,CNTR,CTR,CENTERS,CTRS +CIR,CIRC,CIRCL,CIRCLE,CRCL,CIRCLE,CRCLE +COURT,CRT,CT,COURTS +CTSCK,CR,CREEK,CRK +CROSSING,CRSSING,CRSSNG,XING +CRECENT,CRES,CRESCENT,CRESENT,CRSCNT,CRSENT,CRSNT +EXP,EXPR,EXPRESS,EXPRESSWAY,EXPW,EXPY +FALL,FALLS,FLS +FERRY,FRRY,FRY +FIELD,FLD,FIELDS,FLDS +FREEWAY,FREEWY,FRWAY,FRWY,FWY +GARDEN,GARDN,GDN,GRDEN,GRDN,GARDENS,GDNS,GRDNS +GATEWAY,GATEWY,GATWAY,GTWAY,GTWY +GROV,GROVE,GRV,GROVES +HARB,HARBOR,HARBR,HBR,HRBOR,HARBORS +HEIGHT,HEIGHTS,HGTS,HT,HTS +HIGHWAY,HIGHWY,HIWAY,HIWY,HWAY,HWY +HILL,HL,HILLS,HLS +IS,ISLAND,ISLND,ISLANDS,ISLNDS,ISS,ISLE,ISLES +JCT,JCTION,JCTN,JUNCTION,JUNCTN,JUNCTON,JCTNS,JCTS,JUNCTIONS +LAKE,LK,LAKES,LKS +LANDING,LNDG,LNDNG +LA,LANE,LANES,LN +LOOP,LOOPS,LP +MANOR,MNR,MANORS,MNRS +MDW,MEADOW,MDWS,MEADOWS,MEDOWS +MILL,ML,MILLS,MLS +MNT,MOUNT,MT +MNTAIN,MNTN,MOUNTAIN,MOUNTIN,MTIN,MTN,MNTNS,MOUNTAINS +ORCH,ORCHARD,ORCHRD +PARK,PK,PRK,PARKS +PARKWAY,PARKWY,PKWAY,PKWY,PKY,PARKWAYS,PKWYS +PLAZA,PLZ,PLZA +PLACE,PL +PR,PRAIRIE,PRARIE,PRR +RANCH,RANCHES,RNCH,RNCHS +RDG,RDGE,RIDGE,RDGS,RIDGES +RIV,RIVER,RIVR,RVR +RD,ROAD,RDS,ROADS +RTESHLS,SHOALS +SHOAR,SHORE,SHR,SHOARS,SHORES,SHRS +SPG,SPNG,SPRING,SPRNG,SPGS,SPNGS,SPRINGS,SPRNGS +SQ,SQR,SQRE,SQU,SQUARE,SQRS,SQUARES +STA,STATION,STATN,STN +STREAM,STREME,STRM +ST,STR,STREET,STRT,STREETS +SMT,SUMIT,SUMITT,SUMMIT +TER,TERR,TERRACE +TR,TRAIL,TRAILS,TRL,TRLS +TUNEL,TUNL,TUNLS,TUNNEL,TUNNELS,TUNNL +UN,UNION,UNIONS +VALLEY,VALLY,VLLY,VLY,VALLEYS,VLYS +VDCT,VIA,VIADCT,VIADUCT +VIEW,VW,VIEWS,VWS +VILL,VILLAG,VILLAGE,VILLG,VILLIAGE,VLG,VILLAGES,VLGS +VILLE,VL +VIS,VIST,VISTA,VST,VSTA +WAY,WY,WAYS + +north, N +south, S +east, E +west, W +north west => northwest +north east => northeast +south west => southwest +south east => southeast +northwest, NW +northeast, NE +southwest, SW +southeast, SE diff --git a/projects/las-vegas-metro/test_cases/search_address.json b/projects/las-vegas-metro/test_cases/search_address.json new file mode 100644 index 00000000..32afa81c --- /dev/null +++ b/projects/las-vegas-metro/test_cases/search_address.json @@ -0,0 +1,717 @@ +{ + "name": "/v1/search address", + "description": "addresses in Las Vegas, NV metro area", + "priorityThresh": 1, + "normalizers": { + "name": [ + "toUpperCase", + "removeOrdinals", + "stripPunctuation", + "abbreviateDirectionals", + "abbreviateStreetSuffixes" + ] + }, + "tests": [ + { + "id": 1, + "status": "fail", + "in": { + "text": "1920 N MLK Blvd, Las Vegas, NV" + }, + "expected": { + "properties": [ + { + "name": "1920 North Martin Luther King Boulevard", + "locality": "Las Vegas", + "region": "Nevada", + "region_a": "NV" + } + ] + } + }, + { + "id": 2, + "status": "fail", + "in": { + "text": "1920 N MLK Blvd, Las Vegas, Nevada" + }, + "expected": { + "properties": [ + { + "name": "1920 North Martin Luther King Boulevard", + "locality": "Las Vegas", + "region": "Nevada", + "region_a": "NV" + } + ] + } + }, + { + "id": 3, + "status": "fail", + "in": { + "text": "1920 N MLK Blvd Las Vegas NV" + }, + "expected": { + "properties": [ + { + "name": "1920 North Martin Luther King Boulevard", + "locality": "Las Vegas", + "region": "Nevada", + "region_a": "NV" + } + ] + } + }, + { + "id": 4, + "status": "fail", + "in": { + "text": "1920 N MLK Blvd Las Vegas Nevada" + }, + "expected": { + "properties": [ + { + "name": "1920 North Martin Luther King Boulevard", + "locality": "Las Vegas", + "region": "Nevada", + "region_a": "NV" + } + ] + } + }, + { + "id": 5, + "status": "fail", + "in": { + "text": "1920 N MLK Jr Blvd, Las Vegas, NV" + }, + "expected": { + "properties": [ + { + "name": "1920 North Martin Luther King Boulevard", + "locality": "Las Vegas", + "region": "Nevada", + "region_a": "NV" + } + ] + } + }, + { + "id": 6, + "status": "fail", + "in": { + "text": "1920 N MLK Jr Blvd, Las Vegas, Nevada" + }, + "expected": { + "properties": [ + { + "name": "1920 North Martin Luther King Boulevard", + "locality": "Las Vegas", + "region": "Nevada", + "region_a": "NV" + } + ] + } + }, + { + "id": 7, + "status": "fail", + "in": { + "text": "1920 N MLK Jr Blvd Las Vegas NV" + }, + "expected": { + "properties": [ + { + "name": "1920 North Martin Luther King Boulevard", + "locality": "Las Vegas", + "region": "Nevada", + "region_a": "NV" + } + ] + } + }, + { + "id": 8, + "status": "fail", + "in": { + "text": "1920 N MLK Jr Blvd Las Vegas Nevada" + }, + "expected": { + "properties": [ + { + "name": "1920 North Martin Luther King Boulevard", + "locality": "Las Vegas", + "region": "Nevada", + "region_a": "NV" + } + ] + } + }, + { + "id": 9, + "status": "fail", + "in": { + "text": "1920 N ML King Blvd, Las Vegas, NV" + }, + "expected": { + "properties": [ + { + "name": "1920 North Martin Luther King Boulevard", + "locality": "Las Vegas", + "region": "Nevada", + "region_a": "NV" + } + ] + } + }, + { + "id": 10, + "status": "fail", + "in": { + "text": "1920 N ML King Blvd, Las Vegas, Nevada" + }, + "expected": { + "properties": [ + { + "name": "1920 North Martin Luther King Boulevard", + "locality": "Las Vegas", + "region": "Nevada", + "region_a": "NV" + } + ] + } + }, + { + "id": 11, + "status": "fail", + "in": { + "text": "1920 N ML King Blvd Las Vegas NV" + }, + "expected": { + "properties": [ + { + "name": "1920 North Martin Luther King Boulevard", + "locality": "Las Vegas", + "region": "Nevada", + "region_a": "NV" + } + ] + } + }, + { + "id": 12, + "status": "fail", + "in": { + "text": "1920 N ML King Blvd Las Vegas Nevada" + }, + "expected": { + "properties": [ + { + "name": "1920 North Martin Luther King Boulevard", + "locality": "Las Vegas", + "region": "Nevada", + "region_a": "NV" + } + ] + } + }, + { + "id": 12.1, + "status": "pass", + "in": { + "text": "1920 N martin luther king Las Vegas Nevada" + }, + "expected": { + "properties": [ + { + "name": "1920 North Martin Luther King Boulevard", + "locality": "Las Vegas", + "region": "Nevada", + "region_a": "NV" + } + ] + } + }, + { + "id": 13, + "status": "fail", + "in": { + "text": "2000 S LV Blvd, Las Vegas, NV" + }, + "expected": { + "properties": [ + { + "name": "2000 South Las Vegas Boulevard", + "locality": "Las Vegas", + "region": "Nevada", + "region_a": "NV" + } + ] + } + }, + { + "id": 14, + "status": "fail", + "in": { + "text": "2000 S LV Blvd, Las Vegas, Nevada" + }, + "expected": { + "properties": [ + { + "name": "2000 South Las Vegas Boulevard", + "locality": "Las Vegas", + "region": "Nevada", + "region_a": "NV" + } + ] + } + }, + { + "id": 15, + "status": "fail", + "in": { + "text": "2000 S LV Blvd Las Vegas NV" + }, + "expected": { + "properties": [ + { + "name": "2000 South Las Vegas Boulevard", + "locality": "Las Vegas", + "region": "Nevada", + "region_a": "NV" + } + ] + } + }, + { + "id": 16, + "status": "fail", + "in": { + "text": "2000 S LV Blvd Las Vegas Nevada" + }, + "expected": { + "properties": [ + { + "name": "2000 South Las Vegas Boulevard", + "locality": "Las Vegas", + "region": "Nevada", + "region_a": "NV" + } + ] + } + }, + { + "id": 17, + "status": "fail", + "in": { + "text": "2000 S LVBLVD, Las Vegas, NV" + }, + "expected": { + "properties": [ + { + "name": "2000 South Las Vegas Boulevard", + "locality": "Las Vegas", + "region": "Nevada", + "region_a": "NV" + } + ] + } + }, + { + "id": 18, + "status": "fail", + "in": { + "text": "2000 S LVBLVD, Las Vegas, Nevada" + }, + "expected": { + "properties": [ + { + "name": "2000 South Las Vegas Boulevard", + "locality": "Las Vegas", + "region": "Nevada", + "region_a": "NV" + } + ] + } + }, + { + "id": 19, + "status": "fail", + "in": { + "text": "2000 S LVBLVD Las Vegas NV" + }, + "expected": { + "properties": [ + { + "name": "2000 South Las Vegas Boulevard", + "locality": "Las Vegas", + "region": "Nevada", + "region_a": "NV" + } + ] + } + }, + { + "id": 20, + "status": "fail", + "in": { + "text": "2000 S LVBLVD Las Vegas Nevada" + }, + "expected": { + "properties": [ + { + "name": "2000 South Las Vegas Boulevard", + "locality": "Las Vegas", + "region": "Nevada", + "region_a": "NV" + } + ] + } + }, + { + "id": 21, + "status": "pass", + "in": { + "text": "2000 S Las Vegas Blvd, Las Vegas, NV" + }, + "expected": { + "properties": [ + { + "name": "2000 South Las Vegas Boulevard", + "locality": "Las Vegas", + "region": "Nevada", + "region_a": "NV" + } + ] + } + }, + { + "id": 22, + "status": "pass", + "in": { + "text": "2000 S Las Vegas Blvd, Las Vegas, Nevada" + }, + "expected": { + "properties": [ + { + "name": "2000 South Las Vegas Boulevard", + "locality": "Las Vegas", + "region": "Nevada", + "region_a": "NV" + } + ] + } + }, + { + "id": 23, + "status": "pass", + "in": { + "text": "2000 S Las Vegas Blvd Las Vegas NV" + }, + "expected": { + "properties": [ + { + "name": "2000 South Las Vegas Boulevard", + "locality": "Las Vegas", + "region": "Nevada", + "region_a": "NV" + } + ] + } + }, + { + "id": 24, + "status": "pass", + "in": { + "text": "2000 S Las Vegas Blvd Las Vegas Nevada" + }, + "expected": { + "properties": [ + { + "name": "2000 South Las Vegas Boulevard", + "locality": "Las Vegas", + "region": "Nevada", + "region_a": "NV" + } + ] + } + }, + { + "id": 25, + "status": "fail", + "description": "address is in North Las Vegas", + "in": { + "text": "3100 Thomas Ave, Las Vegas, NV" + }, + "expected": { + "properties": [ + { + "name": "3100 Thomas Avenue", + "locality": "Las Vegas", + "region": "Nevada", + "region_a": "NV" + } + ] + } + }, + { + "id": 26, + "status": "fail", + "description": "address is in North Las Vegas", + "in": { + "text": "3100 Thomas Ave, Las Vegas, Nevada" + }, + "expected": { + "properties": [ + { + "name": "3100 Thomas Avenue", + "locality": "Las Vegas", + "region": "Nevada", + "region_a": "NV" + } + ] + } + }, + { + "id": 27, + "status": "fail", + "description": "address is in North Las Vegas", + "in": { + "text": "3100 Thomas Ave Las Vegas NV" + }, + "expected": { + "properties": [ + { + "name": "3100 Thomas Avenue", + "locality": "Las Vegas", + "region": "Nevada", + "region_a": "NV" + } + ] + } + }, + { + "id": 28, + "status": "fail", + "description": "address is in North Las Vegas", + "in": { + "text": "3100 Thomas Ave Las Vegas Nevada" + }, + "expected": { + "properties": [ + { + "name": "3100 Thomas Avenue", + "locality": "Las Vegas", + "region": "Nevada", + "region_a": "NV" + } + ] + } + }, + { + "id": 29, + "status": "pass", + "in": { + "text": "3100 Thomas Ave, North Las Vegas, NV" + }, + "expected": { + "properties": [ + { + "name": "3100 Thomas Avenue", + "locality": "North Las Vegas", + "region": "Nevada", + "region_a": "NV" + } + ] + } + }, + { + "id": 30, + "status": "pass", + "in": { + "text": "3100 Thomas Ave, North Las Vegas, Nevada" + }, + "expected": { + "properties": [ + { + "name": "3100 Thomas Avenue", + "locality": "North Las Vegas", + "region": "Nevada", + "region_a": "NV" + } + ] + } + }, + { + "id": 31, + "status": "pass", + "in": { + "text": "317 N 6TH ST, Las Vegas, Nevada" + }, + "expected": { + "properties": [ + { + "name": "317 North 6th Street", + "locality": "Las Vegas", + "region": "Nevada", + "region_a": "NV" + } + ] + } + }, + { + "id": 32, + "status": "pass", + "in": { + "text": "317 N 6TH ST, Las Vegas, NV" + }, + "expected": { + "properties": [ + { + "name": "317 North 6th Street", + "locality": "Las Vegas", + "region": "Nevada", + "region_a": "NV" + } + ] + } + }, + { + "id": 33, + "status": "pass", + "in": { + "text": "317 N 6th St, Las Vegas, Nevada" + }, + "expected": { + "properties": [ + { + "name": "317 North 6th Street", + "locality": "Las Vegas", + "region": "Nevada", + "region_a": "NV" + } + ] + } + }, + { + "id": 34, + "status": "pass", + "in": { + "text": "317 N 6th St, Las Vegas, NV" + }, + "expected": { + "properties": [ + { + "name": "317 North 6th Street", + "locality": "Las Vegas", + "region": "Nevada", + "region_a": "NV" + } + ] + } + }, + { + "id": 35, + "status": "pass", + "in": { + "text": "317 North 6th St, Las Vegas, Nevada" + }, + "expected": { + "properties": [ + { + "name": "317 North 6th Street", + "locality": "Las Vegas", + "region": "Nevada", + "region_a": "NV" + } + ] + } + }, + { + "id": 36, + "status": "pass", + "in": { + "text": "317 North 6th St, Las Vegas, NV" + }, + "expected": { + "properties": [ + { + "name": "317 North 6th Street", + "locality": "Las Vegas", + "region": "Nevada", + "region_a": "NV" + } + ] + } + }, + { + "id": 37, + "status": "fail", + "in": { + "text": "317 N Sixth St, Las Vegas, Nevada" + }, + "expected": { + "properties": [ + { + "name": "317 North 6th Street", + "locality": "Las Vegas", + "region": "Nevada", + "region_a": "NV" + } + ] + } + }, + { + "id": 38, + "status": "fail", + "in": { + "text": "317 N Sixth St, Las Vegas, NV" + }, + "expected": { + "properties": [ + { + "name": "317 North 6th Street", + "locality": "Las Vegas", + "region": "Nevada", + "region_a": "NV" + } + ] + } + }, + { + "id": 39, + "status": "fail", + "in": { + "text": "317 North Sixth St, Las Vegas, Nevada" + }, + "expected": { + "properties": [ + { + "name": "317 North 6th Street", + "locality": "Las Vegas", + "region": "Nevada", + "region_a": "NV" + } + ] + } + }, + { + "id": 40, + "status": "fail", + "in": { + "text": "317 North Sixth St, Las Vegas, NV" + }, + "expected": { + "properties": [ + { + "name": "317 North 6th Street", + "locality": "Las Vegas", + "region": "Nevada", + "region_a": "NV" + } + ] + } + } + ] +} diff --git a/projects/las-vegas-metro/test_cases/search_venue.json b/projects/las-vegas-metro/test_cases/search_venue.json new file mode 100644 index 00000000..e26c55b4 --- /dev/null +++ b/projects/las-vegas-metro/test_cases/search_venue.json @@ -0,0 +1,70 @@ +{ + "name": "/v1/search venues", + "priorityThresh": 1, + "endpoint": "search", + "tests": [ + { + "id": 1, + "status": "pass", + "notes": "Stratosphere Tower should come up for Stratosphere", + "in": { + "text": "Stratosphere" + }, + "expected": { + "properties": [ + { + "layer": "venue", + "name": "Stratosphere Tower", + "country_a": "USA", + "country": "United States", + "region": "Nevada", + "region_a": "NV", + "locality": "Las Vegas" + } + ] + } + }, + { + "id": 2, + "status": "pass", + "notes": "Stratosphere Tower should come up for Stratosphere Hotel", + "in": { + "text": "Stratosphere Tower" + }, + "expected": { + "properties": [ + { + "layer": "venue", + "name": "Stratosphere Tower", + "country_a": "USA", + "country": "United States", + "region": "Nevada", + "region_a": "NV", + "locality": "Las Vegas" + } + ] + } + }, + { + "id": 2, + "status": "pass", + "notes": "Stratosphere Tower should come up for Stratosphere Tower", + "in": { + "text": "Stratosphere Hotel" + }, + "expected": { + "properties": [ + { + "layer": "venue", + "name": "Stratosphere Tower", + "country_a": "USA", + "country": "United States", + "region": "Nevada", + "region_a": "NV", + "locality": "Las Vegas" + } + ] + } + } + ] +} From 4d45ac8ccf4b6ee8f7f938c6a01681f0cfa1fb37 Mon Sep 17 00:00:00 2001 From: Eric Hendrickson <28794814+eric-hendrickson@users.noreply.github.com> Date: Wed, 3 Jul 2024 17:42:14 -0700 Subject: [PATCH 75/98] * fix(synonyms): fix 'forth/fourth' typo across projects --- projects/las-vegas-metro/synonyms/custom_street.txt | 2 +- projects/los-angeles-metro/synonyms/custom_street.txt | 2 +- projects/new-york-city/synonyms/custom_street.txt | 2 +- projects/portland-metro/synonyms/custom_street.txt | 2 +- projects/san-jose-metro/synonyms/custom_street.txt | 2 +- projects/south-africa/synonyms/custom_street.txt | 2 +- projects/texas/synonyms/custom_street.txt | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/projects/las-vegas-metro/synonyms/custom_street.txt b/projects/las-vegas-metro/synonyms/custom_street.txt index 3a13de9c..d662620d 100644 --- a/projects/las-vegas-metro/synonyms/custom_street.txt +++ b/projects/las-vegas-metro/synonyms/custom_street.txt @@ -1,7 +1,7 @@ first,1st second,2nd third,3rd -forth,4th +fourth,4th fifth,5th sixth,6th seventh,7th diff --git a/projects/los-angeles-metro/synonyms/custom_street.txt b/projects/los-angeles-metro/synonyms/custom_street.txt index 7b1b6558..ea4490cd 100644 --- a/projects/los-angeles-metro/synonyms/custom_street.txt +++ b/projects/los-angeles-metro/synonyms/custom_street.txt @@ -14,7 +14,7 @@ jewvi,juvi,juvenile first,1st second,2nd third,3rd -forth,4th +fourth,4th fifth,5th sixth,6th seventh,7th diff --git a/projects/new-york-city/synonyms/custom_street.txt b/projects/new-york-city/synonyms/custom_street.txt index f2ca5565..f98f640b 100644 --- a/projects/new-york-city/synonyms/custom_street.txt +++ b/projects/new-york-city/synonyms/custom_street.txt @@ -14,7 +14,7 @@ jewvi,juvi,juvenile first,1st second,2nd third,3rd -forth,4th +fourth,4th fifth,5th sixth,6th seventh,7th diff --git a/projects/portland-metro/synonyms/custom_street.txt b/projects/portland-metro/synonyms/custom_street.txt index 32a4be71..3bfbef11 100644 --- a/projects/portland-metro/synonyms/custom_street.txt +++ b/projects/portland-metro/synonyms/custom_street.txt @@ -24,7 +24,7 @@ jewvi,juvi,juvenile first,1st second,2nd third,3rd -forth,4th +fourth,4th fifth,5th sixth,6th seventh,7th diff --git a/projects/san-jose-metro/synonyms/custom_street.txt b/projects/san-jose-metro/synonyms/custom_street.txt index 7b1b6558..ea4490cd 100644 --- a/projects/san-jose-metro/synonyms/custom_street.txt +++ b/projects/san-jose-metro/synonyms/custom_street.txt @@ -14,7 +14,7 @@ jewvi,juvi,juvenile first,1st second,2nd third,3rd -forth,4th +fourth,4th fifth,5th sixth,6th seventh,7th diff --git a/projects/south-africa/synonyms/custom_street.txt b/projects/south-africa/synonyms/custom_street.txt index 3a13de9c..d662620d 100644 --- a/projects/south-africa/synonyms/custom_street.txt +++ b/projects/south-africa/synonyms/custom_street.txt @@ -1,7 +1,7 @@ first,1st second,2nd third,3rd -forth,4th +fourth,4th fifth,5th sixth,6th seventh,7th diff --git a/projects/texas/synonyms/custom_street.txt b/projects/texas/synonyms/custom_street.txt index ea43ac12..4e9fa868 100644 --- a/projects/texas/synonyms/custom_street.txt +++ b/projects/texas/synonyms/custom_street.txt @@ -26,7 +26,7 @@ jewvi,juvi,juvenile first,1st second,2nd third,3rd -forth,4th +fourth,4th fifth,5th sixth,6th seventh,7th From bff38d1db88d794e849bedba844629cb6f6f7ed8 Mon Sep 17 00:00:00 2001 From: Peter Johnson Date: Wed, 22 Jan 2025 12:10:56 +0100 Subject: [PATCH 76/98] feat(projects): update elasticsearch to v7.17.27 --- projects/australia/docker-compose.yml | 2 +- projects/austria/docker-compose.yml | 2 +- projects/belgium/docker-compose.yml | 2 +- projects/brazil/docker-compose.yml | 2 +- projects/denmark/docker-compose.yml | 2 +- projects/france/docker-compose.yml | 2 +- projects/germany/docker-compose.yml | 2 +- projects/israel/docker-compose.yml | 2 +- projects/italy/docker-compose.yml | 2 +- projects/jamaica/docker-compose.yml | 2 +- projects/las-vegas-metro/docker-compose.yml | 2 +- projects/lithuania/docker-compose.yml | 2 +- projects/los-angeles-metro/docker-compose.yml | 2 +- projects/netherlands/docker-compose.yml | 2 +- projects/new-york-city/docker-compose.yml | 2 +- projects/north-america/docker-compose.yml | 2 +- projects/norway/docker-compose.yml | 2 +- projects/planet/docker-compose.yml | 2 +- projects/poland/docker-compose.yml | 2 +- projects/portland-metro/docker-compose.yml | 2 +- projects/san-jose-metro/docker-compose.yml | 2 +- projects/singapore/docker-compose.yml | 2 +- projects/south-africa/docker-compose.yml | 2 +- projects/south-america/docker-compose.yml | 2 +- projects/texas/docker-compose.yml | 2 +- 25 files changed, 25 insertions(+), 25 deletions(-) diff --git a/projects/australia/docker-compose.yml b/projects/australia/docker-compose.yml index 16a9c289..0907e11d 100644 --- a/projects/australia/docker-compose.yml +++ b/projects/australia/docker-compose.yml @@ -118,7 +118,7 @@ services: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" elasticsearch: - image: pelias/elasticsearch:7.16.1 + image: pelias/elasticsearch:7.17.27 container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always diff --git a/projects/austria/docker-compose.yml b/projects/austria/docker-compose.yml index 5399075d..c0f50faa 100644 --- a/projects/austria/docker-compose.yml +++ b/projects/austria/docker-compose.yml @@ -92,7 +92,7 @@ services: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" elasticsearch: - image: pelias/elasticsearch:7.16.1 + image: pelias/elasticsearch:7.17.27 container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always diff --git a/projects/belgium/docker-compose.yml b/projects/belgium/docker-compose.yml index 5399075d..c0f50faa 100644 --- a/projects/belgium/docker-compose.yml +++ b/projects/belgium/docker-compose.yml @@ -92,7 +92,7 @@ services: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" elasticsearch: - image: pelias/elasticsearch:7.16.1 + image: pelias/elasticsearch:7.17.27 container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always diff --git a/projects/brazil/docker-compose.yml b/projects/brazil/docker-compose.yml index 98ae9da8..ab4482e9 100644 --- a/projects/brazil/docker-compose.yml +++ b/projects/brazil/docker-compose.yml @@ -102,7 +102,7 @@ services: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" elasticsearch: - image: pelias/elasticsearch:7.16.1 + image: pelias/elasticsearch:7.17.27 container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always diff --git a/projects/denmark/docker-compose.yml b/projects/denmark/docker-compose.yml index 5399075d..c0f50faa 100644 --- a/projects/denmark/docker-compose.yml +++ b/projects/denmark/docker-compose.yml @@ -92,7 +92,7 @@ services: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" elasticsearch: - image: pelias/elasticsearch:7.16.1 + image: pelias/elasticsearch:7.17.27 container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always diff --git a/projects/france/docker-compose.yml b/projects/france/docker-compose.yml index 5399075d..c0f50faa 100644 --- a/projects/france/docker-compose.yml +++ b/projects/france/docker-compose.yml @@ -92,7 +92,7 @@ services: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" elasticsearch: - image: pelias/elasticsearch:7.16.1 + image: pelias/elasticsearch:7.17.27 container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always diff --git a/projects/germany/docker-compose.yml b/projects/germany/docker-compose.yml index 5399075d..c0f50faa 100644 --- a/projects/germany/docker-compose.yml +++ b/projects/germany/docker-compose.yml @@ -92,7 +92,7 @@ services: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" elasticsearch: - image: pelias/elasticsearch:7.16.1 + image: pelias/elasticsearch:7.17.27 container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always diff --git a/projects/israel/docker-compose.yml b/projects/israel/docker-compose.yml index 5399075d..c0f50faa 100644 --- a/projects/israel/docker-compose.yml +++ b/projects/israel/docker-compose.yml @@ -92,7 +92,7 @@ services: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" elasticsearch: - image: pelias/elasticsearch:7.16.1 + image: pelias/elasticsearch:7.17.27 container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always diff --git a/projects/italy/docker-compose.yml b/projects/italy/docker-compose.yml index 5399075d..c0f50faa 100644 --- a/projects/italy/docker-compose.yml +++ b/projects/italy/docker-compose.yml @@ -92,7 +92,7 @@ services: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" elasticsearch: - image: pelias/elasticsearch:7.16.1 + image: pelias/elasticsearch:7.17.27 container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always diff --git a/projects/jamaica/docker-compose.yml b/projects/jamaica/docker-compose.yml index 98ae9da8..ab4482e9 100644 --- a/projects/jamaica/docker-compose.yml +++ b/projects/jamaica/docker-compose.yml @@ -102,7 +102,7 @@ services: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" elasticsearch: - image: pelias/elasticsearch:7.16.1 + image: pelias/elasticsearch:7.17.27 container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always diff --git a/projects/las-vegas-metro/docker-compose.yml b/projects/las-vegas-metro/docker-compose.yml index 98ae9da8..ab4482e9 100644 --- a/projects/las-vegas-metro/docker-compose.yml +++ b/projects/las-vegas-metro/docker-compose.yml @@ -102,7 +102,7 @@ services: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" elasticsearch: - image: pelias/elasticsearch:7.16.1 + image: pelias/elasticsearch:7.17.27 container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always diff --git a/projects/lithuania/docker-compose.yml b/projects/lithuania/docker-compose.yml index 9eedd9c5..460e8ed9 100644 --- a/projects/lithuania/docker-compose.yml +++ b/projects/lithuania/docker-compose.yml @@ -99,7 +99,7 @@ services: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" elasticsearch: - image: pelias/elasticsearch:7.16.1 + image: pelias/elasticsearch:7.17.27 container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always diff --git a/projects/los-angeles-metro/docker-compose.yml b/projects/los-angeles-metro/docker-compose.yml index 37fc8200..a1276b81 100644 --- a/projects/los-angeles-metro/docker-compose.yml +++ b/projects/los-angeles-metro/docker-compose.yml @@ -101,7 +101,7 @@ services: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" elasticsearch: - image: pelias/elasticsearch:7.16.1 + image: pelias/elasticsearch:7.17.27 container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always diff --git a/projects/netherlands/docker-compose.yml b/projects/netherlands/docker-compose.yml index 5399075d..c0f50faa 100644 --- a/projects/netherlands/docker-compose.yml +++ b/projects/netherlands/docker-compose.yml @@ -92,7 +92,7 @@ services: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" elasticsearch: - image: pelias/elasticsearch:7.16.1 + image: pelias/elasticsearch:7.17.27 container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always diff --git a/projects/new-york-city/docker-compose.yml b/projects/new-york-city/docker-compose.yml index a4735607..cd8c0596 100644 --- a/projects/new-york-city/docker-compose.yml +++ b/projects/new-york-city/docker-compose.yml @@ -110,7 +110,7 @@ services: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" elasticsearch: - image: pelias/elasticsearch:7.16.1 + image: pelias/elasticsearch:7.17.27 container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always diff --git a/projects/north-america/docker-compose.yml b/projects/north-america/docker-compose.yml index f01002bf..4e764645 100644 --- a/projects/north-america/docker-compose.yml +++ b/projects/north-america/docker-compose.yml @@ -110,7 +110,7 @@ services: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" elasticsearch: - image: pelias/elasticsearch:7.16.1 + image: pelias/elasticsearch:7.17.27 container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always diff --git a/projects/norway/docker-compose.yml b/projects/norway/docker-compose.yml index 5399075d..c0f50faa 100644 --- a/projects/norway/docker-compose.yml +++ b/projects/norway/docker-compose.yml @@ -92,7 +92,7 @@ services: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" elasticsearch: - image: pelias/elasticsearch:7.16.1 + image: pelias/elasticsearch:7.17.27 container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always diff --git a/projects/planet/docker-compose.yml b/projects/planet/docker-compose.yml index f01002bf..4e764645 100644 --- a/projects/planet/docker-compose.yml +++ b/projects/planet/docker-compose.yml @@ -110,7 +110,7 @@ services: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" elasticsearch: - image: pelias/elasticsearch:7.16.1 + image: pelias/elasticsearch:7.17.27 container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always diff --git a/projects/poland/docker-compose.yml b/projects/poland/docker-compose.yml index e1f6e8db..e08e1724 100644 --- a/projects/poland/docker-compose.yml +++ b/projects/poland/docker-compose.yml @@ -99,7 +99,7 @@ services: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" elasticsearch: - image: pelias/elasticsearch:7.16.1 + image: pelias/elasticsearch:7.17.27 container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always diff --git a/projects/portland-metro/docker-compose.yml b/projects/portland-metro/docker-compose.yml index 98ae9da8..ab4482e9 100644 --- a/projects/portland-metro/docker-compose.yml +++ b/projects/portland-metro/docker-compose.yml @@ -102,7 +102,7 @@ services: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" elasticsearch: - image: pelias/elasticsearch:7.16.1 + image: pelias/elasticsearch:7.17.27 container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always diff --git a/projects/san-jose-metro/docker-compose.yml b/projects/san-jose-metro/docker-compose.yml index 37fc8200..a1276b81 100644 --- a/projects/san-jose-metro/docker-compose.yml +++ b/projects/san-jose-metro/docker-compose.yml @@ -101,7 +101,7 @@ services: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" elasticsearch: - image: pelias/elasticsearch:7.16.1 + image: pelias/elasticsearch:7.17.27 container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always diff --git a/projects/singapore/docker-compose.yml b/projects/singapore/docker-compose.yml index 5b0e4071..7d90b8e0 100644 --- a/projects/singapore/docker-compose.yml +++ b/projects/singapore/docker-compose.yml @@ -97,7 +97,7 @@ services: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" elasticsearch: - image: pelias/elasticsearch:7.16.1 + image: pelias/elasticsearch:7.17.27 container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always diff --git a/projects/south-africa/docker-compose.yml b/projects/south-africa/docker-compose.yml index ed3bb2a0..afade7f4 100644 --- a/projects/south-africa/docker-compose.yml +++ b/projects/south-africa/docker-compose.yml @@ -109,7 +109,7 @@ services: volumes: - "../../common/preview:/usr/share/nginx/html" elasticsearch: - image: pelias/elasticsearch:7.16.1 + image: pelias/elasticsearch:7.17.27 container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always diff --git a/projects/south-america/docker-compose.yml b/projects/south-america/docker-compose.yml index 98ae9da8..ab4482e9 100644 --- a/projects/south-america/docker-compose.yml +++ b/projects/south-america/docker-compose.yml @@ -102,7 +102,7 @@ services: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" elasticsearch: - image: pelias/elasticsearch:7.16.1 + image: pelias/elasticsearch:7.17.27 container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always diff --git a/projects/texas/docker-compose.yml b/projects/texas/docker-compose.yml index d96a9f2e..ca8b6fb9 100644 --- a/projects/texas/docker-compose.yml +++ b/projects/texas/docker-compose.yml @@ -104,7 +104,7 @@ services: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" elasticsearch: - image: pelias/elasticsearch:7.16.1 + image: pelias/elasticsearch:7.17.27 container_name: pelias_elasticsearch user: "${DOCKER_USER}" restart: always From 5cc454b8b47ee54488a9f659ff48a52669e0d1e0 Mon Sep 17 00:00:00 2001 From: Julian Simioni Date: Tue, 11 Feb 2025 13:49:07 -0500 Subject: [PATCH 77/98] CI: update Github Action runner Ubuntu versions to 22.04 GitHub is deprecating Ubuntu 20 based runners [on April 1](https://github.blog/changelog/2025-01-15-github-actions-ubuntu-20-runner-image-brownout-dates-and-other-breaking-changes/), so we want to be off well before then. Connects https://github.com/pelias/pelias/issues/951 --- .github/workflows/elasticsearch-image-builder.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/elasticsearch-image-builder.yml b/.github/workflows/elasticsearch-image-builder.yml index a4cb1efe..6e04cce8 100644 --- a/.github/workflows/elasticsearch-image-builder.yml +++ b/.github/workflows/elasticsearch-image-builder.yml @@ -7,7 +7,7 @@ # jobs: # build: # if: github.ref == 'refs/heads/master' && needs.unit-tests.result == 'success' -# runs-on: ubuntu-20.04 +# runs-on: ubuntu-22.04 # strategy: # matrix: # elastic-version: From c476cb6345b96002785715a89201d16e4747bbc9 Mon Sep 17 00:00:00 2001 From: = Date: Tue, 25 Feb 2025 15:56:44 +1100 Subject: [PATCH 78/98] fix: remove duplicate `csv-importer` service from docker-compose.yml --- projects/australia/docker-compose.yml | 8 -------- 1 file changed, 8 deletions(-) diff --git a/projects/australia/docker-compose.yml b/projects/australia/docker-compose.yml index 0907e11d..3c484efa 100644 --- a/projects/australia/docker-compose.yml +++ b/projects/australia/docker-compose.yml @@ -67,14 +67,6 @@ services: - "./pelias.json:/code/pelias.json" - "${DATA_DIR}:/data" - "./blacklist/:/data/blacklist" - csv-importer: - image: pelias/csv-importer:master - container_name: pelias_csv_importer - user: "${DOCKER_USER}" - volumes: - - "./pelias.json:/code/pelias.json" - - "${DATA_DIR}:/data" - - "./blacklist/:/data/blacklist" transit: image: pelias/transit:master container_name: pelias_transit From 6f680540ecef1f5a890c2bd6cc23faeb78b367b6 Mon Sep 17 00:00:00 2001 From: Peter Johnson Date: Wed, 12 Mar 2025 16:13:35 +0100 Subject: [PATCH 79/98] refactor: allow configuring ELASTIC_INDEX for elastic_stats command --- cmd/elastic.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/elastic.sh b/cmd/elastic.sh index 701c19c9..fd999d68 100644 --- a/cmd/elastic.sh +++ b/cmd/elastic.sh @@ -62,7 +62,7 @@ function elastic_info(){ curl -s "http://${ELASTIC_HOST:-localhost:9200}/"; } register 'elastic' 'info' 'display elasticsearch version and build info' elastic_info function elastic_stats(){ - curl -s "http://${ELASTIC_HOST:-localhost:9200}/pelias/_search?request_cache=true&timeout=10s&pretty=true" \ + curl -s "http://${ELASTIC_HOST:-localhost:9200}/${ELASTIC_INDEX:-pelias}/_search?request_cache=true&timeout=10s&pretty=true" \ -H 'Content-Type: application/json' \ -d '{ "aggs": { From abd54d4fd6d7b85c1b9eb2eaec734eeb0c517c5d Mon Sep 17 00:00:00 2001 From: missinglink Date: Thu, 13 Feb 2020 13:57:47 +0100 Subject: [PATCH 80/98] nodejs: initial commit of nodejs port --- .gitignore | 4 +++- cmd/compose.js | 8 ++++++++ cmd/compose/down.js | 10 ++++++++++ cmd/compose/exec.js | 10 ++++++++++ cmd/compose/kill.js | 10 ++++++++++ cmd/compose/logs.js | 10 ++++++++++ cmd/compose/ps.js | 10 ++++++++++ cmd/compose/pull.js | 10 ++++++++++ cmd/compose/run.js | 17 +++++++++++++++++ cmd/compose/top.js | 10 ++++++++++ cmd/compose/up.js | 10 ++++++++++ cmd/download.js | 8 ++++++++ cmd/download/all.js | 23 +++++++++++++++++++++++ cmd/download/csv.js | 9 +++++++++ cmd/download/geonames.js | 9 +++++++++ cmd/download/oa.js | 9 +++++++++ cmd/download/osm.js | 9 +++++++++ cmd/download/tiger.js | 9 +++++++++ cmd/download/transit.js | 9 +++++++++ cmd/download/wof.js | 9 +++++++++ cmd/import.js | 8 ++++++++ cmd/import/all.js | 20 ++++++++++++++++++++ cmd/import/csv.js | 9 +++++++++ cmd/import/geonames.js | 9 +++++++++ cmd/import/oa.js | 9 +++++++++ cmd/import/osm.js | 9 +++++++++ cmd/import/polylines.js | 9 +++++++++ cmd/import/transit.js | 9 +++++++++ cmd/import/wof.js | 9 +++++++++ {cmd => cmd_old}/docker.sh | 0 {cmd => cmd_old}/download.sh | 0 {cmd => cmd_old}/elastic.sh | 0 {cmd => cmd_old}/import.sh | 0 {cmd => cmd_old}/prepare.sh | 0 {cmd => cmd_old}/system.sh | 0 {cmd => cmd_old}/test.sh | 0 lib/env.js | 9 +++++++++ {lib => lib_old}/cli.sh | 0 {lib => lib_old}/env.sh | 0 package.json | 27 +++++++++++++++++++++++++++ pelias | 29 ++++++++--------------------- 41 files changed, 337 insertions(+), 22 deletions(-) create mode 100644 cmd/compose.js create mode 100644 cmd/compose/down.js create mode 100644 cmd/compose/exec.js create mode 100644 cmd/compose/kill.js create mode 100644 cmd/compose/logs.js create mode 100644 cmd/compose/ps.js create mode 100644 cmd/compose/pull.js create mode 100644 cmd/compose/run.js create mode 100644 cmd/compose/top.js create mode 100644 cmd/compose/up.js create mode 100644 cmd/download.js create mode 100644 cmd/download/all.js create mode 100644 cmd/download/csv.js create mode 100644 cmd/download/geonames.js create mode 100644 cmd/download/oa.js create mode 100644 cmd/download/osm.js create mode 100644 cmd/download/tiger.js create mode 100644 cmd/download/transit.js create mode 100644 cmd/download/wof.js create mode 100644 cmd/import.js create mode 100644 cmd/import/all.js create mode 100644 cmd/import/csv.js create mode 100644 cmd/import/geonames.js create mode 100644 cmd/import/oa.js create mode 100644 cmd/import/osm.js create mode 100644 cmd/import/polylines.js create mode 100644 cmd/import/transit.js create mode 100644 cmd/import/wof.js rename {cmd => cmd_old}/docker.sh (100%) rename {cmd => cmd_old}/download.sh (100%) rename {cmd => cmd_old}/elastic.sh (100%) rename {cmd => cmd_old}/import.sh (100%) rename {cmd => cmd_old}/prepare.sh (100%) rename {cmd => cmd_old}/system.sh (100%) rename {cmd => cmd_old}/test.sh (100%) create mode 100644 lib/env.js rename {lib => lib_old}/cli.sh (100%) rename {lib => lib_old}/env.sh (100%) create mode 100644 package.json diff --git a/.gitignore b/.gitignore index fed3ee71..2ba19099 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,4 @@ projects/*/data -.DS_Store \ No newline at end of file +.DS_Store +node_modules +package-lock.json diff --git a/cmd/compose.js b/cmd/compose.js new file mode 100644 index 00000000..1fee4db4 --- /dev/null +++ b/cmd/compose.js @@ -0,0 +1,8 @@ +module.exports = { + command: 'compose ', + describe: 'shortcuts to running docker-compose directly', + builder: (yargs) => yargs + .commandDir('compose') + .usage('$0 [args]') + .demandCommand(1, '') +} diff --git a/cmd/compose/down.js b/cmd/compose/down.js new file mode 100644 index 00000000..ea8ef120 --- /dev/null +++ b/cmd/compose/down.js @@ -0,0 +1,10 @@ +const child = require('child_process') +const options = { stdio: 'inherit' } + +module.exports = { + command: 'down', + describe: 'stop all docker-compose service(s)', + handler: (argv) => { + child.spawnSync('docker-compose', ['down'], options) + } +} diff --git a/cmd/compose/exec.js b/cmd/compose/exec.js new file mode 100644 index 00000000..b8b4dd79 --- /dev/null +++ b/cmd/compose/exec.js @@ -0,0 +1,10 @@ +const child = require('child_process') +const options = { stdio: 'inherit' } + +module.exports = { + command: 'exec', + describe: 'execute an arbitrary docker-compose command', + handler: (argv) => { + child.spawnSync('docker-compose', argv._.slice(1), options) + } +} diff --git a/cmd/compose/kill.js b/cmd/compose/kill.js new file mode 100644 index 00000000..3c4fd29a --- /dev/null +++ b/cmd/compose/kill.js @@ -0,0 +1,10 @@ +const child = require('child_process') +const options = { stdio: 'inherit' } + +module.exports = { + command: 'kill', + describe: 'kill one or more docker-compose service(s)', + handler: (argv) => { + child.spawnSync('docker-compose', argv._.slice(1), options) + } +} diff --git a/cmd/compose/logs.js b/cmd/compose/logs.js new file mode 100644 index 00000000..ca6b8241 --- /dev/null +++ b/cmd/compose/logs.js @@ -0,0 +1,10 @@ +const child = require('child_process') +const options = { stdio: 'inherit' } + +module.exports = { + command: 'logs', + describe: 'display container logs', + handler: (argv) => { + child.spawnSync('docker-compose', argv._.slice(1), options) + } +} diff --git a/cmd/compose/ps.js b/cmd/compose/ps.js new file mode 100644 index 00000000..576e9cd5 --- /dev/null +++ b/cmd/compose/ps.js @@ -0,0 +1,10 @@ +const child = require('child_process') +const options = { stdio: 'inherit' } + +module.exports = { + command: 'ps', + describe: 'list containers', + handler: (argv) => { + child.spawnSync('docker-compose', argv._.slice(1), options) + } +} diff --git a/cmd/compose/pull.js b/cmd/compose/pull.js new file mode 100644 index 00000000..effd9935 --- /dev/null +++ b/cmd/compose/pull.js @@ -0,0 +1,10 @@ +const child = require('child_process') +const options = { stdio: 'inherit' } + +module.exports = { + command: 'pull', + describe: 'update all docker images', + handler: (argv) => { + child.spawnSync('docker-compose', ['pull'], options) + } +} diff --git a/cmd/compose/run.js b/cmd/compose/run.js new file mode 100644 index 00000000..c34f72e1 --- /dev/null +++ b/cmd/compose/run.js @@ -0,0 +1,17 @@ +const child = require('child_process') +const env = require('../../lib/env')() +const options = { stdio: 'inherit' } + +function net_init() { + const net = `${env.COMPOSE_PROJECT_NAME}_default` + child.spawnSync('docker', ['network', 'create', net], { stdio: 'ignore' }) +} + +module.exports = { + command: 'run', + describe: 'execute a docker-compose run command', + handler: (argv) => { + net_init() + child.spawnSync('docker-compose', ['run', '--rm', ...argv._.slice(2)], options) + } +} diff --git a/cmd/compose/top.js b/cmd/compose/top.js new file mode 100644 index 00000000..9285de5b --- /dev/null +++ b/cmd/compose/top.js @@ -0,0 +1,10 @@ +const child = require('child_process') +const options = { stdio: 'inherit' } + +module.exports = { + command: 'top', + describe: 'display the running processes of a container', + handler: (argv) => { + child.spawnSync('docker-compose', argv._.slice(1), options) + } +} diff --git a/cmd/compose/up.js b/cmd/compose/up.js new file mode 100644 index 00000000..feedc093 --- /dev/null +++ b/cmd/compose/up.js @@ -0,0 +1,10 @@ +const child = require('child_process') +const options = { stdio: 'inherit' } + +module.exports = { + command: 'up', + describe: 'start one or more docker-compose service(s)', + handler: (argv) => { + child.spawnSync('docker-compose', ['up', '-d', ...argv._.slice(2)], options) + } +} diff --git a/cmd/download.js b/cmd/download.js new file mode 100644 index 00000000..419d980c --- /dev/null +++ b/cmd/download.js @@ -0,0 +1,8 @@ +module.exports = { + command: 'download ', + describe: 'fetch and update geographic data from source', + builder: (yargs) => yargs + .commandDir('download') + .usage('$0 [args]') + .demandCommand(1, '') +} diff --git a/cmd/download/all.js b/cmd/download/all.js new file mode 100644 index 00000000..67762435 --- /dev/null +++ b/cmd/download/all.js @@ -0,0 +1,23 @@ +const env = require('../../lib/env')() + +module.exports = { + command: 'all', + describe: '(re)download all data', + handler: (argv) => { + + // @todo: make this parallel + // like it was with the bash script + + require('./wof').handler() + require('./oa').handler() + require('./osm').handler() + + if (env.ENABLE_GEONAMES === 'true'){ + require('./geonames').handler() + } + + require('./tiger').handler() + require('./transit').handler() + require('./csv').handler() + } +} diff --git a/cmd/download/csv.js b/cmd/download/csv.js new file mode 100644 index 00000000..21d58da0 --- /dev/null +++ b/cmd/download/csv.js @@ -0,0 +1,9 @@ +const run = require('../compose/run').handler + +module.exports = { + command: 'csv', + describe: '(re)download CSV data', + handler: (argv) => { + run({ _: ['compose', 'run', 'csv-importer', './bin/download'] }) + } +} diff --git a/cmd/download/geonames.js b/cmd/download/geonames.js new file mode 100644 index 00000000..70ddbfae --- /dev/null +++ b/cmd/download/geonames.js @@ -0,0 +1,9 @@ +const run = require('../compose/run').handler + +module.exports = { + command: 'geonames', + describe: '(re)download geonames data', + handler: (argv) => { + run({ _: ['compose', 'run', 'geonames', './bin/download'] }) + } +} diff --git a/cmd/download/oa.js b/cmd/download/oa.js new file mode 100644 index 00000000..90ae8036 --- /dev/null +++ b/cmd/download/oa.js @@ -0,0 +1,9 @@ +const run = require('../compose/run').handler + +module.exports = { + command: 'oa', + describe: '(re)download openaddresses data', + handler: (argv) => { + run({ _: ['compose', 'run', 'openaddresses', './bin/download'] }) + } +} diff --git a/cmd/download/osm.js b/cmd/download/osm.js new file mode 100644 index 00000000..bf2a911e --- /dev/null +++ b/cmd/download/osm.js @@ -0,0 +1,9 @@ +const run = require('../compose/run').handler + +module.exports = { + command: 'osm', + describe: '(re)download openstreetmap data', + handler: (argv) => { + run({ _: ['compose', 'run', 'openstreetmap', './bin/download'] }) + } +} diff --git a/cmd/download/tiger.js b/cmd/download/tiger.js new file mode 100644 index 00000000..f745363c --- /dev/null +++ b/cmd/download/tiger.js @@ -0,0 +1,9 @@ +const run = require('../compose/run').handler + +module.exports = { + command: 'tiger', + describe: '(re)download TIGER data', + handler: (argv) => { + run({ _: ['compose', 'run', 'interpolation', './bin/download-tiger'] }) + } +} diff --git a/cmd/download/transit.js b/cmd/download/transit.js new file mode 100644 index 00000000..41a29486 --- /dev/null +++ b/cmd/download/transit.js @@ -0,0 +1,9 @@ +const run = require('../compose/run').handler + +module.exports = { + command: 'transit', + describe: '(re)download transit data', + handler: (argv) => { + run({ _: ['compose', 'run', 'transit', './bin/download'] }) + } +} diff --git a/cmd/download/wof.js b/cmd/download/wof.js new file mode 100644 index 00000000..4f7499dd --- /dev/null +++ b/cmd/download/wof.js @@ -0,0 +1,9 @@ +const run = require('../compose/run').handler + +module.exports = { + command: 'wof', + describe: '(re)download whosonfirst data', + handler: (argv) => { + run({ _: ['compose', 'run', 'whosonfirst', './bin/download'] }) + } +} diff --git a/cmd/import.js b/cmd/import.js new file mode 100644 index 00000000..23101023 --- /dev/null +++ b/cmd/import.js @@ -0,0 +1,8 @@ +module.exports = { + command: 'import ', + describe: 'import source data into elasticsearch', + builder: (yargs) => yargs + .commandDir('import') + .usage('$0 [args]') + .demandCommand(1, '') +} diff --git a/cmd/import/all.js b/cmd/import/all.js new file mode 100644 index 00000000..7495a5cb --- /dev/null +++ b/cmd/import/all.js @@ -0,0 +1,20 @@ +const env = require('../../lib/env')() + +module.exports = { + command: 'all', + describe: '(re)import all data', + handler: (argv) => { + + require('./wof').handler() + require('./oa').handler() + require('./osm').handler() + require('./polylines').handler() + + if (env.ENABLE_GEONAMES === 'true'){ + require('./geonames').handler() + } + + require('./transit').handler() + require('./csv').handler() + } +} diff --git a/cmd/import/csv.js b/cmd/import/csv.js new file mode 100644 index 00000000..e58a7389 --- /dev/null +++ b/cmd/import/csv.js @@ -0,0 +1,9 @@ +const run = require('../compose/run').handler + +module.exports = { + command: 'csv', + describe: '(re)import CSV data', + handler: (argv) => { + run({ _: ['compose', 'run', 'csv-importer', './bin/start'] }) + } +} diff --git a/cmd/import/geonames.js b/cmd/import/geonames.js new file mode 100644 index 00000000..eca4a2e5 --- /dev/null +++ b/cmd/import/geonames.js @@ -0,0 +1,9 @@ +const run = require('../compose/run').handler + +module.exports = { + command: 'geonames', + describe: '(re)import geonames data', + handler: (argv) => { + run({ _: ['compose', 'run', 'geonames', './bin/start'] }) + } +} diff --git a/cmd/import/oa.js b/cmd/import/oa.js new file mode 100644 index 00000000..8ef52094 --- /dev/null +++ b/cmd/import/oa.js @@ -0,0 +1,9 @@ +const run = require('../compose/run').handler + +module.exports = { + command: 'oa', + describe: '(re)import openaddresses data', + handler: (argv) => { + run({ _: ['compose', 'run', 'openaddresses', './bin/start'] }) + } +} diff --git a/cmd/import/osm.js b/cmd/import/osm.js new file mode 100644 index 00000000..01a33faa --- /dev/null +++ b/cmd/import/osm.js @@ -0,0 +1,9 @@ +const run = require('../compose/run').handler + +module.exports = { + command: 'osm', + describe: '(re)import openstreetmap data', + handler: (argv) => { + run({ _: ['compose', 'run', 'openstreetmap', './bin/start'] }) + } +} diff --git a/cmd/import/polylines.js b/cmd/import/polylines.js new file mode 100644 index 00000000..f36208db --- /dev/null +++ b/cmd/import/polylines.js @@ -0,0 +1,9 @@ +const run = require('../compose/run').handler + +module.exports = { + command: 'polylines', + describe: '(re)import polylines data', + handler: (argv) => { + run({ _: ['compose', 'run', 'interpolation', './bin/start'] }) + } +} diff --git a/cmd/import/transit.js b/cmd/import/transit.js new file mode 100644 index 00000000..d687ba03 --- /dev/null +++ b/cmd/import/transit.js @@ -0,0 +1,9 @@ +const run = require('../compose/run').handler + +module.exports = { + command: 'transit', + describe: '(re)import transit data', + handler: (argv) => { + run({ _: ['compose', 'run', 'transit', './bin/start'] }) + } +} diff --git a/cmd/import/wof.js b/cmd/import/wof.js new file mode 100644 index 00000000..d3a78d8f --- /dev/null +++ b/cmd/import/wof.js @@ -0,0 +1,9 @@ +const run = require('../compose/run').handler + +module.exports = { + command: 'wof', + describe: '(re)import whosonfirst data', + handler: (argv) => { + run({ _: ['compose', 'run', 'whosonfirst', './bin/start'] }) + } +} diff --git a/cmd/docker.sh b/cmd_old/docker.sh similarity index 100% rename from cmd/docker.sh rename to cmd_old/docker.sh diff --git a/cmd/download.sh b/cmd_old/download.sh similarity index 100% rename from cmd/download.sh rename to cmd_old/download.sh diff --git a/cmd/elastic.sh b/cmd_old/elastic.sh similarity index 100% rename from cmd/elastic.sh rename to cmd_old/elastic.sh diff --git a/cmd/import.sh b/cmd_old/import.sh similarity index 100% rename from cmd/import.sh rename to cmd_old/import.sh diff --git a/cmd/prepare.sh b/cmd_old/prepare.sh similarity index 100% rename from cmd/prepare.sh rename to cmd_old/prepare.sh diff --git a/cmd/system.sh b/cmd_old/system.sh similarity index 100% rename from cmd/system.sh rename to cmd_old/system.sh diff --git a/cmd/test.sh b/cmd_old/test.sh similarity index 100% rename from cmd/test.sh rename to cmd_old/test.sh diff --git a/lib/env.js b/lib/env.js new file mode 100644 index 00000000..2329c7b6 --- /dev/null +++ b/lib/env.js @@ -0,0 +1,9 @@ +const _ = require('lodash') +const dotenv = require('dotenv') + +module.exports = () => { + let env = Object.create(process.env) + _.extend(env, dotenv.config().parsed) + + return env +} diff --git a/lib/cli.sh b/lib_old/cli.sh similarity index 100% rename from lib/cli.sh rename to lib_old/cli.sh diff --git a/lib/env.sh b/lib_old/env.sh similarity index 100% rename from lib/env.sh rename to lib_old/env.sh diff --git a/package.json b/package.json new file mode 100644 index 00000000..20c19aac --- /dev/null +++ b/package.json @@ -0,0 +1,27 @@ +{ + "name": "docker", + "version": "1.0.0", + "description": "This repository contains a framework for downloading/preparing and building the [Pelias Geocoder](https://github.com/pelias/pelias) using Docker and [Docker Compose](https://github.com/docker/compose#docker-compose).", + "main": "index.js", + "directories": { + "lib": "lib" + }, + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/pelias/docker.git" + }, + "author": "", + "license": "ISC", + "bugs": { + "url": "https://github.com/pelias/docker/issues" + }, + "homepage": "https://github.com/pelias/docker#readme", + "dependencies": { + "dotenv": "^8.2.0", + "lodash": "^4.17.15", + "yargs": "^15.1.0" + } +} diff --git a/pelias b/pelias index 0f383f55..6cd95086 100755 --- a/pelias +++ b/pelias @@ -1,22 +1,9 @@ -#!/bin/bash -set -e +#!/usr/bin/env node -# OSX comes bundled with versions of readlink, sed, parallel etc which are not -# compatible with the linux tools. Force OSX users to install the GNU -# compatible versions (prefixed with 'g', such as 'greadlink', 'gsed' etc.). -export CMD_READLINK='readlink' -if [[ "$OSTYPE" == "darwin"* ]]; then - if [ -x "$(command -v greadlink)" ]; then - CMD_READLINK='greadlink'; - else - 2>&1 echo 'OSX: you must install the gnu standard tooling using:' - 2>&1 echo 'brew install coreutils' - fi -fi - -# resolve path to this file (following symlinks) and load libs -BASEDIR=$( dirname $( ${CMD_READLINK} -f "${BASH_SOURCE[0]}" ) ) -for f in ${BASEDIR}/lib/* ${BASEDIR}/cmd/*; do source $f; done - -# cli runner -cli "$@" +require('yargs') + .scriptName('pelias') + .commandDir('cmd') + .showHelpOnFail(true) + .demandCommand(1, '') + .help() + .parse() From b43c7654c2555b918f2358187f4706b6a24b4424 Mon Sep 17 00:00:00 2001 From: arnesetzer <25772747+arnesetzer@users.noreply.github.com> Date: Thu, 13 Mar 2025 13:40:23 +0100 Subject: [PATCH 81/98] feat(cmd)!: Update yargs to 17.7.2 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 20c19aac..49fc92ee 100644 --- a/package.json +++ b/package.json @@ -22,6 +22,6 @@ "dependencies": { "dotenv": "^8.2.0", "lodash": "^4.17.15", - "yargs": "^15.1.0" + "yargs": "^17.7.2" } } From 5a285fe094584f80e80dfba130c821ef56cb9e17 Mon Sep 17 00:00:00 2001 From: arnesetzer <25772747+arnesetzer@users.noreply.github.com> Date: Thu, 13 Mar 2025 13:41:07 +0100 Subject: [PATCH 82/98] feat(cmd): Add backwards compability for docker-compose --- cmd/compose/oldOrNewCompose.js | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 cmd/compose/oldOrNewCompose.js diff --git a/cmd/compose/oldOrNewCompose.js b/cmd/compose/oldOrNewCompose.js new file mode 100644 index 00000000..7fdf9ed4 --- /dev/null +++ b/cmd/compose/oldOrNewCompose.js @@ -0,0 +1,10 @@ +const child = require('child_process') +const oldOrNewCompose = require('./oldOrNewCompose') +const options = { stdio: 'ignore', shell:true } + +module.exports = function oldOrNewCompose(){ + if(child.spawnSync('docker compose version', options).status==0){ + return 'docker compose'; + } + return 'docker-compose' +} \ No newline at end of file From 44a7c607e36e823c8ec6050f9dabe27576755ed5 Mon Sep 17 00:00:00 2001 From: arnesetzer <25772747+arnesetzer@users.noreply.github.com> Date: Thu, 13 Mar 2025 13:42:48 +0100 Subject: [PATCH 83/98] fix(cmd): make compose runable --- cmd/compose.js | 2 +- cmd/compose/down.js | 2 +- cmd/compose/exec.js | 4 +- cmd/compose/kill.js | 2 +- cmd/compose/logs.js | 5 +- cmd/compose/ps.js | 7 +- cmd/compose/pull.js | 5 +- cmd/compose/run.js | 5 +- cmd/compose/top.js | 5 +- cmd/compose/up.js | 7 +- projects/ASS/GK2toWGS84.py | 38 ++++++++++ projects/ASS/README.md | 34 +++++++++ projects/ASS/docker-compose.yml | 119 ++++++++++++++++++++++++++++++++ projects/ASS/elasticsearch.yml | 4 ++ projects/ASS/pelias.json | 93 +++++++++++++++++++++++++ 15 files changed, 313 insertions(+), 19 deletions(-) create mode 100644 projects/ASS/GK2toWGS84.py create mode 100644 projects/ASS/README.md create mode 100644 projects/ASS/docker-compose.yml create mode 100644 projects/ASS/elasticsearch.yml create mode 100644 projects/ASS/pelias.json diff --git a/cmd/compose.js b/cmd/compose.js index 1fee4db4..cdb17e91 100644 --- a/cmd/compose.js +++ b/cmd/compose.js @@ -1,6 +1,6 @@ module.exports = { command: 'compose ', - describe: 'shortcuts to running docker-compose directly', + describe: 'shortcuts to running docker compose directly', builder: (yargs) => yargs .commandDir('compose') .usage('$0 [args]') diff --git a/cmd/compose/down.js b/cmd/compose/down.js index ea8ef120..4157dab3 100644 --- a/cmd/compose/down.js +++ b/cmd/compose/down.js @@ -5,6 +5,6 @@ module.exports = { command: 'down', describe: 'stop all docker-compose service(s)', handler: (argv) => { - child.spawnSync('docker-compose', ['down'], options) + child.spawnSync(oldOrNewCompose(), ['down'], options) } } diff --git a/cmd/compose/exec.js b/cmd/compose/exec.js index b8b4dd79..3ea139d9 100644 --- a/cmd/compose/exec.js +++ b/cmd/compose/exec.js @@ -1,10 +1,10 @@ const child = require('child_process') -const options = { stdio: 'inherit' } +const options = { stdio: 'inherit', shell:true } module.exports = { command: 'exec', describe: 'execute an arbitrary docker-compose command', handler: (argv) => { - child.spawnSync('docker-compose', argv._.slice(1), options) + child.spawnSync(oldOrNewCompose(), argv._.slice(1), options) } } diff --git a/cmd/compose/kill.js b/cmd/compose/kill.js index 3c4fd29a..60f836cb 100644 --- a/cmd/compose/kill.js +++ b/cmd/compose/kill.js @@ -5,6 +5,6 @@ module.exports = { command: 'kill', describe: 'kill one or more docker-compose service(s)', handler: (argv) => { - child.spawnSync('docker-compose', argv._.slice(1), options) + child.spawnSync(oldOrNewCompose(), argv._.slice(1), options) } } diff --git a/cmd/compose/logs.js b/cmd/compose/logs.js index ca6b8241..736105ad 100644 --- a/cmd/compose/logs.js +++ b/cmd/compose/logs.js @@ -1,10 +1,11 @@ const child = require('child_process') -const options = { stdio: 'inherit' } +const oldOrNewCompose = require('./oldOrNewCompose') +const options = { stdio: 'inherit' , shell: true} module.exports = { command: 'logs', describe: 'display container logs', handler: (argv) => { - child.spawnSync('docker-compose', argv._.slice(1), options) + child.spawnSync(oldOrNewCompose(), argv._.slice(1), options) } } diff --git a/cmd/compose/ps.js b/cmd/compose/ps.js index 576e9cd5..b7fb39a0 100644 --- a/cmd/compose/ps.js +++ b/cmd/compose/ps.js @@ -1,10 +1,11 @@ const child = require('child_process') -const options = { stdio: 'inherit' } +const oldOrNewCompose = require('./oldOrNewCompose') +const options = { stdio: 'inherit' , shell: true} module.exports = { command: 'ps', describe: 'list containers', handler: (argv) => { - child.spawnSync('docker-compose', argv._.slice(1), options) + child.spawnSync(oldOrNewCompose(), argv._.slice(1), options) } -} +} \ No newline at end of file diff --git a/cmd/compose/pull.js b/cmd/compose/pull.js index effd9935..33052d8e 100644 --- a/cmd/compose/pull.js +++ b/cmd/compose/pull.js @@ -1,10 +1,11 @@ const child = require('child_process') -const options = { stdio: 'inherit' } +const oldOrNewCompose = require('./oldOrNewCompose') +const options = { stdio: 'inherit' , shell: true} module.exports = { command: 'pull', describe: 'update all docker images', handler: (argv) => { - child.spawnSync('docker-compose', ['pull'], options) + child.spawnSync(oldOrNewCompose(), ['pull'], options) } } diff --git a/cmd/compose/run.js b/cmd/compose/run.js index c34f72e1..327d9a1b 100644 --- a/cmd/compose/run.js +++ b/cmd/compose/run.js @@ -1,6 +1,7 @@ const child = require('child_process') +const oldOrNewCompose = require('./oldOrNewCompose') const env = require('../../lib/env')() -const options = { stdio: 'inherit' } +const options = { stdio: 'inherit' , shell: true} function net_init() { const net = `${env.COMPOSE_PROJECT_NAME}_default` @@ -12,6 +13,6 @@ module.exports = { describe: 'execute a docker-compose run command', handler: (argv) => { net_init() - child.spawnSync('docker-compose', ['run', '--rm', ...argv._.slice(2)], options) + child.spawnSync(oldOrNewCompose(), ['run', '--rm', ...argv._.slice(2)], options) } } diff --git a/cmd/compose/top.js b/cmd/compose/top.js index 9285de5b..a5184984 100644 --- a/cmd/compose/top.js +++ b/cmd/compose/top.js @@ -1,10 +1,11 @@ const child = require('child_process') -const options = { stdio: 'inherit' } +const oldOrNewCompose = require('./oldOrNewCompose') +const options = { stdio: 'inherit' , shell: true} module.exports = { command: 'top', describe: 'display the running processes of a container', handler: (argv) => { - child.spawnSync('docker-compose', argv._.slice(1), options) + child.spawnSync(oldOrNewCompose(), argv._.slice(1), options) } } diff --git a/cmd/compose/up.js b/cmd/compose/up.js index feedc093..1b6447a8 100644 --- a/cmd/compose/up.js +++ b/cmd/compose/up.js @@ -1,10 +1,11 @@ const child = require('child_process') -const options = { stdio: 'inherit' } +const oldOrNewCompose = require('./oldOrNewCompose') +const options = { stdio: 'inherit', shell:true } module.exports = { command: 'up', - describe: 'start one or more docker-compose service(s)', + describe: 'start one or more docker compose service(s)', handler: (argv) => { - child.spawnSync('docker-compose', ['up', '-d', ...argv._.slice(2)], options) + child.spawnSync(oldOrNewCompose(), ['up', '-d', ...argv._.slice(2)], options) } } diff --git a/projects/ASS/GK2toWGS84.py b/projects/ASS/GK2toWGS84.py new file mode 100644 index 00000000..eea3a3f3 --- /dev/null +++ b/projects/ASS/GK2toWGS84.py @@ -0,0 +1,38 @@ +import pandas as pd +import pyproj + +# Definiere das Projektionssystem für GK2 (EPSG:31466) +gk2 = pyproj.CRS("EPSG:31466") + +# Definiere das Projektionssystem für WGS84 (EPSG:4326) +wgs84 = pyproj.CRS("EPSG:4326") + +# Erstelle einen Transformer, der die Koordinaten von GK2 zu WGS84 konvertiert +transformer = pyproj.Transformer.from_crs(gk2, wgs84, always_xy=True) + +# Funktion zur Umwandlung von GK2-Koordinaten (x, y) in WGS84 (Breite, Länge) +def gk2_to_wgs84(x, y): + # Umwandlung in WGS84 + longitude, latitude = transformer.transform(x, y) + return latitude, longitude # Reihenfolge: (Breite, Länge) + +# Funktion zum Verarbeiten der TSV-Datei und Ausgabe als CSV mit Pandas +def process_tsv(input_file, output_file): + # Lese die TSV-Datei in einen Pandas DataFrame + df = pd.read_csv(input_file, sep='\t') + + # Umwandlung der Koordinaten + df['H_lat'], df['H_lon'] = zip(*df.apply(lambda row: gk2_to_wgs84(row['H_KOORX'], row['H_KOORY']), axis=1)) + df["source"] = "csv_haltstellen" + df["layer"] = "venue" + df.drop(columns=["H_ART","H_REFOBJEKT","H_ORT","H_PROVGEM","H_PROVORT","H_VERBUNDNR","H_KOORX","H_KOORY","H_BETRIEB","H_HSTKENNUNG","H_UMSKENNUNG","H_UMSQUALI","H_UMSZEIT","H_KUERZEL","H_EINRICHTUNG","H_ASTKENNUNG","H_ASTGEBIET","H_ASTNR","H_ASTBEREICH","H_INSUSER","H_INSDATE","H_MODUSER","H_MODDATE","H_ZUGANGBARFREI","H_BARKLASSE","H_ASTOBJEKT","H_ZUGANGBARGRAD","H_ANZSUCHANFR","H_INESKENNUNG","H_STEIG","H_KENN_KURZSTRECKE"], inplace=True) + + # Speichern der umgewandelten Koordinaten in einer CSV-Datei + df.to_csv(output_file, index=False) + +# Beispielaufruf +input_file = './data/csv-import/haltestellen_raw.csv' # Pfad zur Eingabedatei (TSV) +output_file = './data/csv-import/haltestellen_ready.csv' # Pfad zur Ausgabedatei (CSV) + +process_tsv(input_file, output_file) +print(f"Die Koordinaten wurden erfolgreich umgewandelt und in '{output_file}' gespeichert.") diff --git a/projects/ASS/README.md b/projects/ASS/README.md new file mode 100644 index 00000000..68e78bdb --- /dev/null +++ b/projects/ASS/README.md @@ -0,0 +1,34 @@ +# Germany + +This project is configured to download/prepare/build a complete Pelias installation for Germany. + +# Setup + +Please refer to the instructions at in order to install and configure your docker environment. + +Given the coverage provided by OpenAddresses is somewhat sparse, it's worth examining the configuration and the OpenAddresses coverage to understand your queries. + +The minimum configuration required in order to run this project are [installing prerequisites](https://github.com/pelias/docker#prerequisites), [install the pelias command](https://github.com/pelias/docker#installing-the-pelias-command) and [configure the environment](https://github.com/pelias/docker#configure-environment). + +Please ensure that's all working fine before continuing. + +# Run a Build + +To run a complete build, execute the following commands: + +```bash +pelias compose pull +pelias elastic start +pelias elastic wait +pelias elastic create +pelias download all +pelias prepare all +pelias import all +pelias compose up +``` + +# Make an Example Query + +You can now make queries against your new Pelias build: + + diff --git a/projects/ASS/docker-compose.yml b/projects/ASS/docker-compose.yml new file mode 100644 index 00000000..1b3af283 --- /dev/null +++ b/projects/ASS/docker-compose.yml @@ -0,0 +1,119 @@ +version: '3' +networks: + default: + driver: bridge +services: + libpostal: + image: pelias/libpostal-service + container_name: pelias_libpostal + user: "${DOCKER_USER}" + restart: always + ports: [ "127.0.0.1:4400:4400" ] + schema: + image: arnesetzer/pelias-schema + container_name: pelias_schema + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + api: + image: pelias/api:master + container_name: pelias_api + user: "${DOCKER_USER}" + restart: always + environment: [ "PORT=4000" ] + ports: [ "0.0.0.0:4000:4000" ] + volumes: + - "./pelias.json:/code/pelias.json" + placeholder: + image: pelias/placeholder:master + container_name: pelias_placeholder + user: "${DOCKER_USER}" + restart: always + environment: [ "PORT=4100" ] + ports: [ "127.0.0.1:4100:4100" ] + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + - "./blacklist/:/data/blacklist" + whosonfirst: + image: pelias/whosonfirst:master + container_name: pelias_whosonfirst + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + openstreetmap: + image: pelias/openstreetmap:master + container_name: pelias_openstreetmap + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + openaddresses: + image: pelias/openaddresses:master + container_name: pelias_openaddresses + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + csv-importer: + image: pelias/csv-importer:master + container_name: pelias_csv_importer + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + - "./blacklist/:/data/blacklist" + polylines: + image: pelias/polylines:master + container_name: pelias_polylines + user: "${DOCKER_USER}" + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + interpolation: + image: pelias/interpolation:master + container_name: pelias_interpolation + user: "${DOCKER_USER}" + restart: always + environment: [ "PORT=4300" ] + ports: [ "127.0.0.1:4300:4300" ] + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + pip: + image: pelias/pip-service:master + container_name: pelias_pip-service + user: "${DOCKER_USER}" + restart: always + environment: [ "PORT=4200" ] + ports: [ "127.0.0.1:4200:4200" ] + volumes: + - "./pelias.json:/code/pelias.json" + - "${DATA_DIR}:/data" + elasticsearch: + image: pelias/elasticsearch:7.16.1 + container_name: pelias_elasticsearch + user: "${DOCKER_USER}" + restart: always + ports: [ "127.0.0.1:9200:9200", "127.0.0.1:9300:9300" ] + volumes: + - "./elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro" + - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" + ulimits: + memlock: + soft: -1 + hard: -1 + nofile: + soft: 65536 + hard: 65536 + cap_add: [ "IPC_LOCK" ] + security_opt: + - seccomp=unconfined + preview: + image: nginx + container_name: pelias_preview + restart: always + ports: [ "127.0.0.1:3000:80" ] + volumes: + - "../../common/preview:/usr/share/nginx/html" diff --git a/projects/ASS/elasticsearch.yml b/projects/ASS/elasticsearch.yml new file mode 100644 index 00000000..ca137940 --- /dev/null +++ b/projects/ASS/elasticsearch.yml @@ -0,0 +1,4 @@ +network.host: 0.0.0.0 +bootstrap.memory_lock: true +indices.breaker.fielddata.limit: 85% +indices.fielddata.cache.size: 75% \ No newline at end of file diff --git a/projects/ASS/pelias.json b/projects/ASS/pelias.json new file mode 100644 index 00000000..2af5a08d --- /dev/null +++ b/projects/ASS/pelias.json @@ -0,0 +1,93 @@ +{ + "logger": { + "level": "debug", + "timestamp": false + }, + "esclient": { + "apiVersion": "7.5", + "hosts": [ + { + "host": "elasticsearch" + } + ] + }, + "elasticsearch": { + "settings": { + "index": { + "refresh_interval": "10s", + "number_of_replicas": "0", + "number_of_shards": "1" + } + } + }, + "api": { + "indexName": "pelias-2025-03-13", + "exposeInternalDebugTools": true, + "services": { + "pip": { + "url": "http://pip:4200" + }, + "libpostal": { + "url": "http://libpostal:4400" + }, + "placeholder": { + "url": "http://placeholder:4100" + }, + "interpolation": { + "url": "http://interpolation:4300" + } + } + }, + "imports": { + "openstreetmap": { + "download": [ + { + "sourceURL": "https://download.geofabrik.de/europe/germany/nordrhein-westfalen-latest.osm.pbf" + } + ], + "leveldbpath": "/tmp", + "datapath": "/data/openstreetmap", + "import": [ + { + "filename": "nordrhein-westfalen-latest.osm.pbf" + } + ] + }, + "openaddresses": { + "datapath": "/data/openaddresses", + "files": [ + "de/nw/city_of_cologne.csv", + "de/nw/city_of_wesel.csv", + "de/nw/city_of_wuppertal.csv", + "de/nw/kreis_viersen.csv", + "de/nw/statewide.csv" + ] + }, + "polyline": { + "datapath": "/data/polylines", + "files": [ + "extract.0sv" + ] + }, + "whosonfirst": { + "datapath": "/data/whosonfirst", + "countryCode": "DE", + "importPostalcodes": true, + "importPlace": [ + "85682513" + ] + }, + "csv": { + "datapath": "/data/csv-import", + "files": [ + "haltestellen_ready.csv" + ] + }, + "adminLookup": { + "enabled": true + } + }, + "schema": { + "indexName": "pelias-new" + } +} From 83e2b84413a16360c45bc4168e756d1db43f64a8 Mon Sep 17 00:00:00 2001 From: arnesetzer <25772747+arnesetzer@users.noreply.github.com> Date: Thu, 13 Mar 2025 15:14:31 +0100 Subject: [PATCH 84/98] feat(cmd): Add elastic commands --- cmd/elastic.js | 8 ++++++++ cmd/elastic/create.js | 9 +++++++++ cmd/elastic/drop.js | 11 +++++++++++ cmd/elastic/status.js | 25 +++++++++++++++++++++++++ 4 files changed, 53 insertions(+) create mode 100644 cmd/elastic.js create mode 100644 cmd/elastic/create.js create mode 100644 cmd/elastic/drop.js create mode 100644 cmd/elastic/status.js diff --git a/cmd/elastic.js b/cmd/elastic.js new file mode 100644 index 00000000..098e1d18 --- /dev/null +++ b/cmd/elastic.js @@ -0,0 +1,8 @@ +module.exports = { + command: 'elastic ', + describe: 'interact with the elastic database', + builder: (yargs) => yargs + .commandDir('elastic') + .usage('$0 [args]') + .demandCommand(1, '') +} diff --git a/cmd/elastic/create.js b/cmd/elastic/create.js new file mode 100644 index 00000000..02b7690b --- /dev/null +++ b/cmd/elastic/create.js @@ -0,0 +1,9 @@ +const run = require('../compose/run').handler + +module.exports = { + command: 'create', + describe: 'create elasticsearch index with pelias mapping', + handler: () => { + run({ _: ['compose', 'run', 'schema', './bin/create_index'] }) + } +} \ No newline at end of file diff --git a/cmd/elastic/drop.js b/cmd/elastic/drop.js new file mode 100644 index 00000000..be6ca9ef --- /dev/null +++ b/cmd/elastic/drop.js @@ -0,0 +1,11 @@ +const run = require('../compose/run').handler + +module.exports = { + command: 'drop', + describe: 'delete elasticsearch index & all data', + handler: (argv) => { + console.debug(argv) + if(argv.f || argv.forceYes) + run({ _: ['compose', 'run', 'schema', 'node scripts/drop_index', '-f'] }) + } +} \ No newline at end of file diff --git a/cmd/elastic/status.js b/cmd/elastic/status.js new file mode 100644 index 00000000..b8de55d2 --- /dev/null +++ b/cmd/elastic/status.js @@ -0,0 +1,25 @@ +const http = require('http'); + +const options = { + host: 'localhost', + port: 9201, + path: '_cluster/health?wait_for_status=yellow&timeout=1s', + method: 'GET', + timeout: 1000 +}; +module.exports = { + command: 'status', + describe: 'HTTP status code of the elasticsearch service', + handler: () => { + const req = http.get(options, res => { + res.statusCode===200?console.log(res.statusCode):console.error(res.statusCode); + res.destroy(); + }).on('error', err => { + console.log('Error: ', err.message); + }); + req.on('timeout', () => { + console.error(`Request timeouted after ${options.timeout/1000}s`); + req.destroy(); + }); + } +} \ No newline at end of file From e25d07f95c5e890da2009e0509c703e843e53620 Mon Sep 17 00:00:00 2001 From: arnesetzer <25772747+arnesetzer@users.noreply.github.com> Date: Fri, 14 Mar 2025 08:42:24 +0100 Subject: [PATCH 85/98] fix(cmd): Change elastic default port back to 9200 --- cmd/elastic/status.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cmd/elastic/status.js b/cmd/elastic/status.js index b8de55d2..183c222d 100644 --- a/cmd/elastic/status.js +++ b/cmd/elastic/status.js @@ -1,8 +1,9 @@ const http = require('http'); const options = { + //TODO: Allow custom values via System variable host: 'localhost', - port: 9201, + port: 9200, path: '_cluster/health?wait_for_status=yellow&timeout=1s', method: 'GET', timeout: 1000 From f45ef12b0769192df9537fd91b9e4397fd6a9535 Mon Sep 17 00:00:00 2001 From: arnesetzer <25772747+arnesetzer@users.noreply.github.com> Date: Fri, 14 Mar 2025 09:15:30 +0100 Subject: [PATCH 86/98] feat(cmd): Rewrite elastic status to make it reusable --- cmd/elastic/status.js | 30 ++++++++++-------------------- cmd/elastic/status_helper.js | 22 ++++++++++++++++++++++ 2 files changed, 32 insertions(+), 20 deletions(-) create mode 100644 cmd/elastic/status_helper.js diff --git a/cmd/elastic/status.js b/cmd/elastic/status.js index 183c222d..5b9f9343 100644 --- a/cmd/elastic/status.js +++ b/cmd/elastic/status.js @@ -1,26 +1,16 @@ -const http = require('http'); +const status_helper = require('./status_helper') -const options = { - //TODO: Allow custom values via System variable - host: 'localhost', - port: 9200, - path: '_cluster/health?wait_for_status=yellow&timeout=1s', - method: 'GET', - timeout: 1000 -}; module.exports = { command: 'status', describe: 'HTTP status code of the elasticsearch service', handler: () => { - const req = http.get(options, res => { - res.statusCode===200?console.log(res.statusCode):console.error(res.statusCode); - res.destroy(); - }).on('error', err => { - console.log('Error: ', err.message); - }); - req.on('timeout', () => { - console.error(`Request timeouted after ${options.timeout/1000}s`); - req.destroy(); - }); + switch (status_helper.getStatus()) { + case 200: + console.log("200"); + break; + default: + console.error(status_helper.getStatus().statusCode); + break; + } } -} \ No newline at end of file +} diff --git a/cmd/elastic/status_helper.js b/cmd/elastic/status_helper.js new file mode 100644 index 00000000..d8505232 --- /dev/null +++ b/cmd/elastic/status_helper.js @@ -0,0 +1,22 @@ +const http = require('http'); +const options = { + //TODO: Allow custom values via System variable + host: 'localhost', + port: 9200, + path: '_cluster/health?wait_for_status=yellow&timeout=1s', + method: 'GET', + timeout: 1000 +}; +module.exports = { getStatus }; + +function getStatus() { + const req = http.get(options, res => { + res.destroy(); + return ({ "statusCode": res.statusCode }) + }); + req.on('timeout', () => { + req.destroy(); + }); + //Js interprets leading zeros as octal representation + return ({ "statusCode": '000' }); +} \ No newline at end of file From 2c2aee66753572442f12c59e171ea65367e0e619 Mon Sep 17 00:00:00 2001 From: arnesetzer <25772747+arnesetzer@users.noreply.github.com> Date: Fri, 14 Mar 2025 09:16:22 +0100 Subject: [PATCH 87/98] feat(cmd)!: Implement elastic wait --- cmd/elastic/wait.js | 29 +++++++++++++++++++++++++++++ package.json | 1 + 2 files changed, 30 insertions(+) create mode 100644 cmd/elastic/wait.js diff --git a/cmd/elastic/wait.js b/cmd/elastic/wait.js new file mode 100644 index 00000000..24ccfc6c --- /dev/null +++ b/cmd/elastic/wait.js @@ -0,0 +1,29 @@ +const sleep = require('atomic-sleep'); +const status_helper = require('./status_helper') + +const retry_count = 30; + +module.exports = { + command: 'wait', + describe: 'wait for elasticsearch to start up', + handler: () => { + console.log('waiting for elasticsearch service to come up'); + for (let i = 0; i < retry_count; i++) { + if (status_helper == 200) { + console.log('Elasticsearch up!'); + return; + } + else if (status_helper === 408) { + //Use process.stdout to avoid a forced newline + process.stdout.write(':') + } + else { + process.stdout.write('.') + } + sleep(1000); + } + console.error("\nElasticsearch did not come up, check configuration"); + return; + + } +} \ No newline at end of file diff --git a/package.json b/package.json index 49fc92ee..6b4f62e4 100644 --- a/package.json +++ b/package.json @@ -20,6 +20,7 @@ }, "homepage": "https://github.com/pelias/docker#readme", "dependencies": { + "atomic-sleep": "^1.0.0", "dotenv": "^8.2.0", "lodash": "^4.17.15", "yargs": "^17.7.2" From b7cf595fcc5ad0f2157f09c1e91373aa66154d49 Mon Sep 17 00:00:00 2001 From: arnesetzer <25772747+arnesetzer@users.noreply.github.com> Date: Fri, 14 Mar 2025 09:27:53 +0100 Subject: [PATCH 88/98] feat(cmd): Adds elastic stats --- cmd/elastic/stats.js | 60 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 cmd/elastic/stats.js diff --git a/cmd/elastic/stats.js b/cmd/elastic/stats.js new file mode 100644 index 00000000..09e1380d --- /dev/null +++ b/cmd/elastic/stats.js @@ -0,0 +1,60 @@ +const http = require('http'); + +const options = { + hostname: process.env.ELASTIC_HOST || 'localhost', + port: 9201, + path: `/${process.env.ELASTIC_INDEX || 'pelias'}/_search?request_cache=true&timeout=10s&pretty=true`, + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, +}; + + +const data = JSON.stringify({ + aggs: { + sources: { + terms: { + field: 'source', + size: 100, + }, + aggs: { + layers: { + terms: { + field: 'layer', + size: 100, + }, + }, + }, + }, + }, + size: 0, +}); + + +module.exports = { + command: 'stats', + describe: 'display a summary of doc counts per source/layer', + handler: () => { + const req = http.request(options, (res) => { + let body = ''; + + res.on('data', (chunk) => { + body += chunk; + }); + + res.on('end', () => { + console.log(body); + }); + }); + + req.on('error', (e) => { + //Differs from bash implementation. There a timeout would be silently ignored + console.error(`Problem with request: ${e.message}`); + }); + + req.write(data); + + req.end(); + } +} From d23291a10ec740f49a6b87be86086a584392d60b Mon Sep 17 00:00:00 2001 From: arnesetzer <25772747+arnesetzer@users.noreply.github.com> Date: Fri, 14 Mar 2025 09:31:55 +0100 Subject: [PATCH 89/98] fix(cmd): Change default port to 9200 --- cmd/elastic/stats.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/elastic/stats.js b/cmd/elastic/stats.js index 09e1380d..e96cb20e 100644 --- a/cmd/elastic/stats.js +++ b/cmd/elastic/stats.js @@ -2,7 +2,7 @@ const http = require('http'); const options = { hostname: process.env.ELASTIC_HOST || 'localhost', - port: 9201, + port: 9200, path: `/${process.env.ELASTIC_INDEX || 'pelias'}/_search?request_cache=true&timeout=10s&pretty=true`, method: 'POST', headers: { From d21fe3a5eaa105c595af3c5b47025bfba14d3314 Mon Sep 17 00:00:00 2001 From: arnesetzer <25772747+arnesetzer@users.noreply.github.com> Date: Fri, 14 Mar 2025 09:57:49 +0100 Subject: [PATCH 90/98] feat(cmd): Add elastic info --- cmd/elastic/info.js | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 cmd/elastic/info.js diff --git a/cmd/elastic/info.js b/cmd/elastic/info.js new file mode 100644 index 00000000..989073f0 --- /dev/null +++ b/cmd/elastic/info.js @@ -0,0 +1,31 @@ +const http = require('http'); +const options = { + hostname: process.env.ELASTIC_HOST || 'localhost', + port: 9200, + path: '/', + method: 'GET' +}; +module.exports = { + command: 'info', + describe: 'display elasticsearch version and build info', + handler: () => { + const req = http.request(options, (res) => { + let body = ''; + + res.on('data', (chunk) => { + body += chunk; + }); + + res.on('end', () => { + console.log(body); + }); + + }); + req.on('error', (e) => { + //Differs from bash implementation. There a timeout would be silently ignored + console.error(`Problem with request: ${e.message}`); + }); + + req.end(); + } +}; \ No newline at end of file From e04c45d526bca5aa02bb291d7b0044ce2d5d8120 Mon Sep 17 00:00:00 2001 From: arnesetzer <25772747+arnesetzer@users.noreply.github.com> Date: Fri, 14 Mar 2025 10:01:52 +0100 Subject: [PATCH 91/98] fix(cmd): Fix async problem with elastic status/wait --- cmd/elastic/status.js | 7 ++++--- cmd/elastic/status_helper.js | 28 +++++++++++++++++++--------- cmd/elastic/wait.js | 8 +++++--- 3 files changed, 28 insertions(+), 15 deletions(-) diff --git a/cmd/elastic/status.js b/cmd/elastic/status.js index 5b9f9343..02e9b3f0 100644 --- a/cmd/elastic/status.js +++ b/cmd/elastic/status.js @@ -3,13 +3,14 @@ const status_helper = require('./status_helper') module.exports = { command: 'status', describe: 'HTTP status code of the elasticsearch service', - handler: () => { - switch (status_helper.getStatus()) { + handler: async () => { + let status = await status_helper.getStatus() + switch (status) { case 200: console.log("200"); break; default: - console.error(status_helper.getStatus().statusCode); + console.error(status.statusCode); break; } } diff --git a/cmd/elastic/status_helper.js b/cmd/elastic/status_helper.js index d8505232..bdbf84de 100644 --- a/cmd/elastic/status_helper.js +++ b/cmd/elastic/status_helper.js @@ -9,14 +9,24 @@ const options = { }; module.exports = { getStatus }; -function getStatus() { - const req = http.get(options, res => { - res.destroy(); - return ({ "statusCode": res.statusCode }) - }); - req.on('timeout', () => { - req.destroy(); +async function getStatus() { + return new Promise((resolve, reject) => { + const req = http.get(options, res => { + res.on('data', () => { }); + res.on('end', () => { + resolve({ "statusCode": res.statusCode }); + }); + }); + + req.on('error', (err) => { + //If we don't resolve the promise it will trigger the default help message from yargs + resolve({ "statusCode": '000' }); + }); + + req.on('timeout', () => { + req.destroy(); + //If we don't resolve the promise it will trigger the default help message from yargs + resolve({ "statusCode": '000' }); + }); }); - //Js interprets leading zeros as octal representation - return ({ "statusCode": '000' }); } \ No newline at end of file diff --git a/cmd/elastic/wait.js b/cmd/elastic/wait.js index 24ccfc6c..77d34133 100644 --- a/cmd/elastic/wait.js +++ b/cmd/elastic/wait.js @@ -6,14 +6,16 @@ const retry_count = 30; module.exports = { command: 'wait', describe: 'wait for elasticsearch to start up', - handler: () => { + handler: async () => { console.log('waiting for elasticsearch service to come up'); for (let i = 0; i < retry_count; i++) { - if (status_helper == 200) { + let status = await status_helper.getStatus(); + if (status.statusCode == 200) { console.log('Elasticsearch up!'); return; } - else if (status_helper === 408) { + //408 indicates the server is up but not yet yellow status + else if (status.statusCode === 408) { //Use process.stdout to avoid a forced newline process.stdout.write(':') } From 4b7f26625998e384eb4d48031cb02e4870a1ae47 Mon Sep 17 00:00:00 2001 From: arnesetzer <25772747+arnesetzer@users.noreply.github.com> Date: Fri, 14 Mar 2025 10:45:35 +0100 Subject: [PATCH 92/98] feat(cmd): Add prepare commands --- cmd/prepare.js | 9 +++++++++ cmd/prepare/all.js | 10 ++++++++++ cmd/prepare/interpolation.js | 9 +++++++++ cmd/prepare/placeholder.js | 10 ++++++++++ cmd/prepare/polylines.js | 9 +++++++++ 5 files changed, 47 insertions(+) create mode 100644 cmd/prepare.js create mode 100644 cmd/prepare/all.js create mode 100644 cmd/prepare/interpolation.js create mode 100644 cmd/prepare/placeholder.js create mode 100644 cmd/prepare/polylines.js diff --git a/cmd/prepare.js b/cmd/prepare.js new file mode 100644 index 00000000..fb33603c --- /dev/null +++ b/cmd/prepare.js @@ -0,0 +1,9 @@ +module.exports = { + command: 'prepare ', + describe: 'prepare source data before the import', + builder: (yargs) => yargs + .commandDir('prepare') + .usage('$0 [args]') + .demandCommand(1, '') + } + \ No newline at end of file diff --git a/cmd/prepare/all.js b/cmd/prepare/all.js new file mode 100644 index 00000000..8b09097c --- /dev/null +++ b/cmd/prepare/all.js @@ -0,0 +1,10 @@ + +module.exports = { + command: 'all', + describe: 'build all services which have a prepare step', + handler: () => { + require('./polylines').handler(); + require('./placeholder').handler(); + require('./interpolation').handler(); + } +} diff --git a/cmd/prepare/interpolation.js b/cmd/prepare/interpolation.js new file mode 100644 index 00000000..67035648 --- /dev/null +++ b/cmd/prepare/interpolation.js @@ -0,0 +1,9 @@ +const run = require('../compose/run').handler + +module.exports = { + command: 'interpolation', + describe: 'build interpolation sqlite databases', + handler: () => { + run({ _: ['compose', 'run', 'interpolation', 'bash', './docker_build.sh'] }) + } +} diff --git a/cmd/prepare/placeholder.js b/cmd/prepare/placeholder.js new file mode 100644 index 00000000..1494b0d5 --- /dev/null +++ b/cmd/prepare/placeholder.js @@ -0,0 +1,10 @@ +const run = require('../compose/run').handler + +module.exports = { + command: 'placeholder', + describe: 'build placeholder sqlite databases', + handler: () => { + run({ _: ['compose', 'run', 'placeholder', 'bash', './cmd/extract.sh'] }) + run({ _: ['compose', 'run', 'placeholder', 'bash', './cmd/build.sh'] }) + } +} diff --git a/cmd/prepare/polylines.js b/cmd/prepare/polylines.js new file mode 100644 index 00000000..8f5d8b99 --- /dev/null +++ b/cmd/prepare/polylines.js @@ -0,0 +1,9 @@ +const run = require('../compose/run').handler + +module.exports = { + command: 'polylines', + describe: 'export road network from openstreetmap into polylines format', + handler: () => { + run({ _: ['compose', 'run', 'polylines', 'bash', './docker_extract.sh'] }) + } +} From 5f688c568ca853d2934d0808f769c0e441af1c88 Mon Sep 17 00:00:00 2001 From: arnesetzer <25772747+arnesetzer@users.noreply.github.com> Date: Fri, 14 Mar 2025 10:46:12 +0100 Subject: [PATCH 93/98] fix(projects): Remove accidently pushed project --- projects/ASS/GK2toWGS84.py | 38 ---------- projects/ASS/README.md | 34 --------- projects/ASS/docker-compose.yml | 119 -------------------------------- projects/ASS/elasticsearch.yml | 4 -- projects/ASS/pelias.json | 93 ------------------------- 5 files changed, 288 deletions(-) delete mode 100644 projects/ASS/GK2toWGS84.py delete mode 100644 projects/ASS/README.md delete mode 100644 projects/ASS/docker-compose.yml delete mode 100644 projects/ASS/elasticsearch.yml delete mode 100644 projects/ASS/pelias.json diff --git a/projects/ASS/GK2toWGS84.py b/projects/ASS/GK2toWGS84.py deleted file mode 100644 index eea3a3f3..00000000 --- a/projects/ASS/GK2toWGS84.py +++ /dev/null @@ -1,38 +0,0 @@ -import pandas as pd -import pyproj - -# Definiere das Projektionssystem für GK2 (EPSG:31466) -gk2 = pyproj.CRS("EPSG:31466") - -# Definiere das Projektionssystem für WGS84 (EPSG:4326) -wgs84 = pyproj.CRS("EPSG:4326") - -# Erstelle einen Transformer, der die Koordinaten von GK2 zu WGS84 konvertiert -transformer = pyproj.Transformer.from_crs(gk2, wgs84, always_xy=True) - -# Funktion zur Umwandlung von GK2-Koordinaten (x, y) in WGS84 (Breite, Länge) -def gk2_to_wgs84(x, y): - # Umwandlung in WGS84 - longitude, latitude = transformer.transform(x, y) - return latitude, longitude # Reihenfolge: (Breite, Länge) - -# Funktion zum Verarbeiten der TSV-Datei und Ausgabe als CSV mit Pandas -def process_tsv(input_file, output_file): - # Lese die TSV-Datei in einen Pandas DataFrame - df = pd.read_csv(input_file, sep='\t') - - # Umwandlung der Koordinaten - df['H_lat'], df['H_lon'] = zip(*df.apply(lambda row: gk2_to_wgs84(row['H_KOORX'], row['H_KOORY']), axis=1)) - df["source"] = "csv_haltstellen" - df["layer"] = "venue" - df.drop(columns=["H_ART","H_REFOBJEKT","H_ORT","H_PROVGEM","H_PROVORT","H_VERBUNDNR","H_KOORX","H_KOORY","H_BETRIEB","H_HSTKENNUNG","H_UMSKENNUNG","H_UMSQUALI","H_UMSZEIT","H_KUERZEL","H_EINRICHTUNG","H_ASTKENNUNG","H_ASTGEBIET","H_ASTNR","H_ASTBEREICH","H_INSUSER","H_INSDATE","H_MODUSER","H_MODDATE","H_ZUGANGBARFREI","H_BARKLASSE","H_ASTOBJEKT","H_ZUGANGBARGRAD","H_ANZSUCHANFR","H_INESKENNUNG","H_STEIG","H_KENN_KURZSTRECKE"], inplace=True) - - # Speichern der umgewandelten Koordinaten in einer CSV-Datei - df.to_csv(output_file, index=False) - -# Beispielaufruf -input_file = './data/csv-import/haltestellen_raw.csv' # Pfad zur Eingabedatei (TSV) -output_file = './data/csv-import/haltestellen_ready.csv' # Pfad zur Ausgabedatei (CSV) - -process_tsv(input_file, output_file) -print(f"Die Koordinaten wurden erfolgreich umgewandelt und in '{output_file}' gespeichert.") diff --git a/projects/ASS/README.md b/projects/ASS/README.md deleted file mode 100644 index 68e78bdb..00000000 --- a/projects/ASS/README.md +++ /dev/null @@ -1,34 +0,0 @@ -# Germany - -This project is configured to download/prepare/build a complete Pelias installation for Germany. - -# Setup - -Please refer to the instructions at in order to install and configure your docker environment. - -Given the coverage provided by OpenAddresses is somewhat sparse, it's worth examining the configuration and the OpenAddresses coverage to understand your queries. - -The minimum configuration required in order to run this project are [installing prerequisites](https://github.com/pelias/docker#prerequisites), [install the pelias command](https://github.com/pelias/docker#installing-the-pelias-command) and [configure the environment](https://github.com/pelias/docker#configure-environment). - -Please ensure that's all working fine before continuing. - -# Run a Build - -To run a complete build, execute the following commands: - -```bash -pelias compose pull -pelias elastic start -pelias elastic wait -pelias elastic create -pelias download all -pelias prepare all -pelias import all -pelias compose up -``` - -# Make an Example Query - -You can now make queries against your new Pelias build: - - diff --git a/projects/ASS/docker-compose.yml b/projects/ASS/docker-compose.yml deleted file mode 100644 index 1b3af283..00000000 --- a/projects/ASS/docker-compose.yml +++ /dev/null @@ -1,119 +0,0 @@ -version: '3' -networks: - default: - driver: bridge -services: - libpostal: - image: pelias/libpostal-service - container_name: pelias_libpostal - user: "${DOCKER_USER}" - restart: always - ports: [ "127.0.0.1:4400:4400" ] - schema: - image: arnesetzer/pelias-schema - container_name: pelias_schema - user: "${DOCKER_USER}" - volumes: - - "./pelias.json:/code/pelias.json" - api: - image: pelias/api:master - container_name: pelias_api - user: "${DOCKER_USER}" - restart: always - environment: [ "PORT=4000" ] - ports: [ "0.0.0.0:4000:4000" ] - volumes: - - "./pelias.json:/code/pelias.json" - placeholder: - image: pelias/placeholder:master - container_name: pelias_placeholder - user: "${DOCKER_USER}" - restart: always - environment: [ "PORT=4100" ] - ports: [ "127.0.0.1:4100:4100" ] - volumes: - - "./pelias.json:/code/pelias.json" - - "${DATA_DIR}:/data" - - "./blacklist/:/data/blacklist" - whosonfirst: - image: pelias/whosonfirst:master - container_name: pelias_whosonfirst - user: "${DOCKER_USER}" - volumes: - - "./pelias.json:/code/pelias.json" - - "${DATA_DIR}:/data" - openstreetmap: - image: pelias/openstreetmap:master - container_name: pelias_openstreetmap - user: "${DOCKER_USER}" - volumes: - - "./pelias.json:/code/pelias.json" - - "${DATA_DIR}:/data" - openaddresses: - image: pelias/openaddresses:master - container_name: pelias_openaddresses - user: "${DOCKER_USER}" - volumes: - - "./pelias.json:/code/pelias.json" - - "${DATA_DIR}:/data" - csv-importer: - image: pelias/csv-importer:master - container_name: pelias_csv_importer - user: "${DOCKER_USER}" - volumes: - - "./pelias.json:/code/pelias.json" - - "${DATA_DIR}:/data" - - "./blacklist/:/data/blacklist" - polylines: - image: pelias/polylines:master - container_name: pelias_polylines - user: "${DOCKER_USER}" - volumes: - - "./pelias.json:/code/pelias.json" - - "${DATA_DIR}:/data" - interpolation: - image: pelias/interpolation:master - container_name: pelias_interpolation - user: "${DOCKER_USER}" - restart: always - environment: [ "PORT=4300" ] - ports: [ "127.0.0.1:4300:4300" ] - volumes: - - "./pelias.json:/code/pelias.json" - - "${DATA_DIR}:/data" - pip: - image: pelias/pip-service:master - container_name: pelias_pip-service - user: "${DOCKER_USER}" - restart: always - environment: [ "PORT=4200" ] - ports: [ "127.0.0.1:4200:4200" ] - volumes: - - "./pelias.json:/code/pelias.json" - - "${DATA_DIR}:/data" - elasticsearch: - image: pelias/elasticsearch:7.16.1 - container_name: pelias_elasticsearch - user: "${DOCKER_USER}" - restart: always - ports: [ "127.0.0.1:9200:9200", "127.0.0.1:9300:9300" ] - volumes: - - "./elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro" - - "${DATA_DIR}/elasticsearch:/usr/share/elasticsearch/data" - ulimits: - memlock: - soft: -1 - hard: -1 - nofile: - soft: 65536 - hard: 65536 - cap_add: [ "IPC_LOCK" ] - security_opt: - - seccomp=unconfined - preview: - image: nginx - container_name: pelias_preview - restart: always - ports: [ "127.0.0.1:3000:80" ] - volumes: - - "../../common/preview:/usr/share/nginx/html" diff --git a/projects/ASS/elasticsearch.yml b/projects/ASS/elasticsearch.yml deleted file mode 100644 index ca137940..00000000 --- a/projects/ASS/elasticsearch.yml +++ /dev/null @@ -1,4 +0,0 @@ -network.host: 0.0.0.0 -bootstrap.memory_lock: true -indices.breaker.fielddata.limit: 85% -indices.fielddata.cache.size: 75% \ No newline at end of file diff --git a/projects/ASS/pelias.json b/projects/ASS/pelias.json deleted file mode 100644 index 2af5a08d..00000000 --- a/projects/ASS/pelias.json +++ /dev/null @@ -1,93 +0,0 @@ -{ - "logger": { - "level": "debug", - "timestamp": false - }, - "esclient": { - "apiVersion": "7.5", - "hosts": [ - { - "host": "elasticsearch" - } - ] - }, - "elasticsearch": { - "settings": { - "index": { - "refresh_interval": "10s", - "number_of_replicas": "0", - "number_of_shards": "1" - } - } - }, - "api": { - "indexName": "pelias-2025-03-13", - "exposeInternalDebugTools": true, - "services": { - "pip": { - "url": "http://pip:4200" - }, - "libpostal": { - "url": "http://libpostal:4400" - }, - "placeholder": { - "url": "http://placeholder:4100" - }, - "interpolation": { - "url": "http://interpolation:4300" - } - } - }, - "imports": { - "openstreetmap": { - "download": [ - { - "sourceURL": "https://download.geofabrik.de/europe/germany/nordrhein-westfalen-latest.osm.pbf" - } - ], - "leveldbpath": "/tmp", - "datapath": "/data/openstreetmap", - "import": [ - { - "filename": "nordrhein-westfalen-latest.osm.pbf" - } - ] - }, - "openaddresses": { - "datapath": "/data/openaddresses", - "files": [ - "de/nw/city_of_cologne.csv", - "de/nw/city_of_wesel.csv", - "de/nw/city_of_wuppertal.csv", - "de/nw/kreis_viersen.csv", - "de/nw/statewide.csv" - ] - }, - "polyline": { - "datapath": "/data/polylines", - "files": [ - "extract.0sv" - ] - }, - "whosonfirst": { - "datapath": "/data/whosonfirst", - "countryCode": "DE", - "importPostalcodes": true, - "importPlace": [ - "85682513" - ] - }, - "csv": { - "datapath": "/data/csv-import", - "files": [ - "haltestellen_ready.csv" - ] - }, - "adminLookup": { - "enabled": true - } - }, - "schema": { - "indexName": "pelias-new" - } -} From 52357384f405a6d20ca2dcbfb078529e219f4393 Mon Sep 17 00:00:00 2001 From: arnesetzer <25772747+arnesetzer@users.noreply.github.com> Date: Mon, 17 Mar 2025 10:04:05 +0100 Subject: [PATCH 94/98] feat(cmd): Add node system commands --- cmd/system.js | 9 +++++++++ cmd/system/check.js | 34 ++++++++++++++++++++++++++++++++++ cmd/system/env.js | 11 +++++++++++ cmd/system/update.js | 11 +++++++++++ 4 files changed, 65 insertions(+) create mode 100644 cmd/system.js create mode 100644 cmd/system/check.js create mode 100644 cmd/system/env.js create mode 100644 cmd/system/update.js diff --git a/cmd/system.js b/cmd/system.js new file mode 100644 index 00000000..4c2a2c1f --- /dev/null +++ b/cmd/system.js @@ -0,0 +1,9 @@ +module.exports = { + command: 'system ', + describe: 'run system commands', + builder: (yargs) => yargs + .commandDir('system') + .usage('$0 [args]') + .demandCommand(1, '') + } + \ No newline at end of file diff --git a/cmd/system/check.js b/cmd/system/check.js new file mode 100644 index 00000000..2db8c9fc --- /dev/null +++ b/cmd/system/check.js @@ -0,0 +1,34 @@ +const platform = require('process').platform; +const { exec } = require('child_process'); +const env = require('../../lib/env'); +const fs = require('fs'); +module.exports = { + command: 'check', + describe: 'ensure the system is correctly configured', + handler: () => { + if (platform == "win32") { + //TODO: Find a solid way to determine the admin status in windows (cmd&pwsh working) + } + //Assuming that ever other platform is *nix related + else { + exec('echo $(id -u ${SUDO_USER-${USER}}):$(id -g ${SUDO_USER-${USER}})', function (err, stdout, stderror) { + if (stdout == "0:0") { + console.error("You are running as root\nhis is insecure and not supported by Pelias.\nPlease try again as a non-root user.") + process.exit(1); + } + }) + } + if (!env().DATA_DIR) { + console.error("You must set the DATA_DIR env var to a valid directory on your local machine.\n"); + console.error("Edit the '.env' file in this repository, update the DATA_DIR to a valid path and try again.") + console.error("Alternatively, you can set the variable in your environment using a command such as 'export DATA_DIR=/tmp'.") + process.exit(1); + } + if (!fs.existsSync(!env().DATA_DIR)) { + console.error(`The directory specified by DATA_DIR does not exist:\n ${env().DATA_DIR}`); + console.error("Edit the '.env' file in this repository, update the DATA_DIR to a valid path and try again."); + console.error("Alternatively, you can set the variable in your environment using a command such as 'export DATA_DIR=/tmp'."); + process.exit(1); + } + } +} \ No newline at end of file diff --git a/cmd/system/env.js b/cmd/system/env.js new file mode 100644 index 00000000..c9772ac9 --- /dev/null +++ b/cmd/system/env.js @@ -0,0 +1,11 @@ +module.exports = { + command: 'env', + describe: 'display environment variables', + handler: () => { + Object.entries(process.env).forEach(entry => { + //Mimic the default bash env return value + console.log(entry[0] + "=" + entry[1]); + }); + } + +} \ No newline at end of file diff --git a/cmd/system/update.js b/cmd/system/update.js new file mode 100644 index 00000000..40a6278f --- /dev/null +++ b/cmd/system/update.js @@ -0,0 +1,11 @@ +const path = require('path'); +const { exec } = require('child_process'); + +module.exports = { + command: 'update', + describe: 'update the pelias command by pulling the latest version', + handler: () => { + const peliasRoot = path.dirname(require.main.filename); + exec(`git -C ${peliasRoot} pull`) + } +} \ No newline at end of file From c1196f78d87a10c886314ff78ba9d9abb88059cc Mon Sep 17 00:00:00 2001 From: arnesetzer <25772747+arnesetzer@users.noreply.github.com> Date: Mon, 17 Mar 2025 10:34:33 +0100 Subject: [PATCH 95/98] feat(cmd): Add test run command --- cmd/test.js | 9 +++++++++ cmd/test/run.js | 8 ++++++++ 2 files changed, 17 insertions(+) create mode 100644 cmd/test.js create mode 100644 cmd/test/run.js diff --git a/cmd/test.js b/cmd/test.js new file mode 100644 index 00000000..bb6d712c --- /dev/null +++ b/cmd/test.js @@ -0,0 +1,9 @@ +module.exports = { + command: 'test ', + describe: 'run test scenarios', + builder: (yargs) => yargs + .commandDir('test') + .usage('$0 [args]') + .demandCommand(1, '') + } + \ No newline at end of file diff --git a/cmd/test/run.js b/cmd/test/run.js new file mode 100644 index 00000000..a7eb03f0 --- /dev/null +++ b/cmd/test/run.js @@ -0,0 +1,8 @@ +const run = require('../compose/run').handler +module.exports = { + command: 'run', + describe: 'run fuzzy-tester test cases', + handler: () => { + run({ _: ['compose', 'run', 'fuzzy-tester', '-e docker'] }) + } +} \ No newline at end of file From 6b47f928a87f66cb00f75d2b565290e861215679 Mon Sep 17 00:00:00 2001 From: arnesetzer <25772747+arnesetzer@users.noreply.github.com> Date: Mon, 17 Mar 2025 10:38:35 +0100 Subject: [PATCH 96/98] feat(cmd): Remove old cmd shell stuff --- cmd_old/docker.sh | 43 ---------------------- cmd_old/download.sh | 37 ------------------- cmd_old/elastic.sh | 87 --------------------------------------------- cmd_old/import.sh | 37 ------------------- cmd_old/prepare.sh | 24 ------------- cmd_old/system.sh | 11 ------ cmd_old/test.sh | 7 ---- lib_old/cli.sh | 49 ------------------------- lib_old/env.sh | 73 ------------------------------------- 9 files changed, 368 deletions(-) delete mode 100644 cmd_old/docker.sh delete mode 100644 cmd_old/download.sh delete mode 100644 cmd_old/elastic.sh delete mode 100644 cmd_old/import.sh delete mode 100644 cmd_old/prepare.sh delete mode 100644 cmd_old/system.sh delete mode 100644 cmd_old/test.sh delete mode 100644 lib_old/cli.sh delete mode 100644 lib_old/env.sh diff --git a/cmd_old/docker.sh b/cmd_old/docker.sh deleted file mode 100644 index dbc456d7..00000000 --- a/cmd_old/docker.sh +++ /dev/null @@ -1,43 +0,0 @@ -#!/bin/bash -set -e; - -function net_init(){ - docker network create ${COMPOSE_PROJECT_NAME}_default &>/dev/null || true -} - -function compose_pull(){ compose_exec pull; } -register 'compose' 'pull' 'update all docker images' compose_pull - -function compose_logs(){ compose_exec logs $@; } -register 'compose' 'logs' 'display container logs' compose_logs - -function compose_ps(){ compose_exec ps $@; } -register 'compose' 'ps' 'list containers' compose_ps - -function compose_top(){ compose_exec top $@; } -register 'compose' 'top' 'display the running processes of a container' compose_top - -# the 'docker compose' subcommand is now the recommended method of calling compose. -# if not available, we fallback to the legacy 'docker-compose' command. -function compose_exec(){ - NATIVE_COMPOSE_VERSION=$(docker compose version 2> /dev/null || true) - if [ -z "$NATIVE_COMPOSE_VERSION" ]; then - docker-compose $@; - else - docker compose $@; - fi -} -register 'compose' 'exec' 'execute an arbitrary `docker compose` command' compose_exec - -function compose_run(){ net_init; compose_exec run --rm $@; } -register 'compose' 'run' 'execute a `docker compose` run command' compose_run - -function compose_up(){ compose_exec up -d $@; } -register 'compose' 'up' 'start one or more `docker compose` service(s)' compose_up - -function compose_kill(){ compose_exec kill $@; } -register 'compose' 'kill' 'kill one or more `docker compose` service(s)' compose_kill - -function compose_down(){ compose_exec down; } -register 'compose' 'down' 'stop all `docker compose` service(s)' compose_down - diff --git a/cmd_old/download.sh b/cmd_old/download.sh deleted file mode 100644 index e8e736e1..00000000 --- a/cmd_old/download.sh +++ /dev/null @@ -1,37 +0,0 @@ -#!/bin/bash -set -e; - -# per-source downloads -function download_wof(){ compose_run -T 'whosonfirst' './bin/download'; } -function download_oa(){ compose_run -T 'openaddresses' './bin/download'; } -function download_osm(){ compose_run -T 'openstreetmap' './bin/download'; } -function download_geonames(){ compose_run -T 'geonames' './bin/download'; } -function download_tiger(){ compose_run -T 'interpolation' './bin/download-tiger'; } -function download_transit(){ compose_run -T 'transit' './bin/download'; } -function download_csv(){ compose_run -T 'csv-importer' './bin/download'; } - -register 'download' 'wof' '(re)download whosonfirst data' download_wof -register 'download' 'oa' '(re)download openaddresses data' download_oa -register 'download' 'osm' '(re)download openstreetmap data' download_osm -register 'download' 'geonames' '(re)download geonames data' download_geonames -register 'download' 'tiger' '(re)download TIGER data' download_tiger -register 'download' 'transit' '(re)download transit data' download_transit -register 'download' 'csv' '(re)download csv data' download_csv - -# download all the data to be used by imports -function download_all(){ - download_wof & - download_oa & - download_osm & - - if [[ "$ENABLE_GEONAMES" == "true" ]]; then - download_geonames & - fi - - download_tiger & - download_transit & - download_csv & - wait -} - -register 'download' 'all' '(re)download all data' download_all diff --git a/cmd_old/elastic.sh b/cmd_old/elastic.sh deleted file mode 100644 index fd999d68..00000000 --- a/cmd_old/elastic.sh +++ /dev/null @@ -1,87 +0,0 @@ -#!/bin/bash -set -e; - -function elastic_schema_drop(){ compose_run 'schema' node scripts/drop_index "$@" || true; } -function elastic_schema_create(){ compose_run 'schema' ./bin/create_index; } -function elastic_start(){ - mkdir -p $DATA_DIR/elasticsearch - # attemp to set proper permissions if running as root - chown $DOCKER_USER $DATA_DIR/elasticsearch 2>/dev/null || true - compose_exec up -d elasticsearch -} - -function elastic_stop(){ compose_exec kill elasticsearch; } - -register 'elastic' 'drop' 'delete elasticsearch index & all data' elastic_schema_drop -register 'elastic' 'create' 'create elasticsearch index with pelias mapping' elastic_schema_create -register 'elastic' 'start' 'start elasticsearch server' elastic_start -register 'elastic' 'stop' 'stop elasticsearch server' elastic_stop - -# to use this function: -# if test $(elastic_status) -ne 200; then -function elastic_status(){ - curl \ - --output /dev/null \ - --silent \ - --write-out "%{http_code}" \ - "http://${ELASTIC_HOST:-localhost:9200}/_cluster/health?wait_for_status=yellow&timeout=1s" \ - || true; -} - -# the same function but with a trailing newline -function elastic_status_newline(){ echo $(elastic_status); } -register 'elastic' 'status' 'HTTP status code of the elasticsearch service' elastic_status_newline - -function elastic_wait(){ - echo 'waiting for elasticsearch service to come up'; - retry_count=30 - - i=1 - while [[ "$i" -le "$retry_count" ]]; do - if [[ $(elastic_status) -eq 200 ]]; then - echo "Elasticsearch up!" - exit 0 - elif [[ $(elastic_status) -eq 408 ]]; then - # 408 indicates the server is up but not yet yellow status - printf ":" - else - printf "." - fi - sleep 1 - i=$(($i + 1)) - done - - echo -e "\n" - echo "Elasticsearch did not come up, check configuration" - exit 1 -} - -register 'elastic' 'wait' 'wait for elasticsearch to start up' elastic_wait - -function elastic_info(){ curl -s "http://${ELASTIC_HOST:-localhost:9200}/"; } -register 'elastic' 'info' 'display elasticsearch version and build info' elastic_info - -function elastic_stats(){ - curl -s "http://${ELASTIC_HOST:-localhost:9200}/${ELASTIC_INDEX:-pelias}/_search?request_cache=true&timeout=10s&pretty=true" \ - -H 'Content-Type: application/json' \ - -d '{ - "aggs": { - "sources": { - "terms": { - "field": "source", - "size": 100 - }, - "aggs": { - "layers": { - "terms": { - "field": "layer", - "size": 100 - } - } - } - } - }, - "size": 0 - }'; -} -register 'elastic' 'stats' 'display a summary of doc counts per source/layer' elastic_stats diff --git a/cmd_old/import.sh b/cmd_old/import.sh deleted file mode 100644 index c7adc73c..00000000 --- a/cmd_old/import.sh +++ /dev/null @@ -1,37 +0,0 @@ -#!/bin/bash -set -e; - -# per-source imports -function import_wof(){ compose_run 'whosonfirst' './bin/start'; } -function import_oa(){ compose_run 'openaddresses' "./bin/parallel ${OPENADDRESSES_PARALLELISM:-1}"; } -function import_osm(){ compose_run 'openstreetmap' './bin/start'; } -function import_polylines(){ compose_run 'polylines' './bin/start'; } -function import_geonames(){ compose_run 'geonames' './bin/start'; } -function import_transit(){ compose_run 'transit' './bin/start'; } -function import_csv(){ compose_run 'csv-importer' './bin/parallel' ${CSV_PARALLELISM:-1}; } - -register 'import' 'wof' '(re)import whosonfirst data' import_wof -register 'import' 'oa' '(re)import openaddresses data' import_oa -register 'import' 'osm' '(re)import openstreetmap data' import_osm -register 'import' 'polylines' '(re)import polylines data' import_polylines -register 'import' 'geonames' '(re)import geonames data' import_geonames -register 'import' 'transit' '(re)import transit data' import_transit -register 'import' 'csv' '(re)import csv data' import_csv - -# import all the data to be used by imports -# note: running importers in parallel can cause issues due to high CPU & RAM requirements. -function import_all(){ - import_wof - import_oa - import_osm - import_polylines - - if [[ "$ENABLE_GEONAMES" == "true" ]]; then - import_geonames - fi - - import_transit - import_csv -} - -register 'import' 'all' '(re)import all data' import_all diff --git a/cmd_old/prepare.sh b/cmd_old/prepare.sh deleted file mode 100644 index ab4ea1eb..00000000 --- a/cmd_old/prepare.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash -set -e; - -# per-source prepares -function prepare_polylines(){ compose_run -T 'polylines' bash ./docker_extract.sh; } -function prepare_interpolation(){ compose_run -T 'interpolation' bash ./docker_build.sh; } -function prepare_placeholder(){ - compose_run -T 'placeholder' ./cmd/extract.sh; - compose_run -T 'placeholder' ./cmd/build.sh; -} - -register 'prepare' 'polylines' 'export road network from openstreetmap into polylines format' prepare_polylines -register 'prepare' 'interpolation' 'build interpolation sqlite databases' prepare_interpolation -register 'prepare' 'placeholder' 'build placeholder sqlite databases' prepare_placeholder - -# prepare all the data to be used by imports -function prepare_all(){ - prepare_polylines & - prepare_placeholder & - wait - prepare_interpolation -} - -register 'prepare' 'all' 'build all services which have a prepare step' prepare_all diff --git a/cmd_old/system.sh b/cmd_old/system.sh deleted file mode 100644 index 225e2726..00000000 --- a/cmd_old/system.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash -set -e; - -function system_check(){ env_check; } -register 'system' 'check' 'ensure the system is correctly configured' system_check - -function system_env(){ env; } -register 'system' 'env' 'display environment variables' system_env - -function system_update(){ git -C $(dirname "${BASH_SOURCE[0]}") pull; } -register 'system' 'update' 'update the pelias command by pulling the latest version' system_update \ No newline at end of file diff --git a/cmd_old/test.sh b/cmd_old/test.sh deleted file mode 100644 index 56e916a3..00000000 --- a/cmd_old/test.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash -set -e; - -# run acceptance tests -function test_fuzzy(){ compose_run 'fuzzy-tester' -e 'docker' $@; } - -register 'test' 'run' 'run fuzzy-tester test cases' test_fuzzy \ No newline at end of file diff --git a/lib_old/cli.sh b/lib_old/cli.sh deleted file mode 100644 index a47fb0a8..00000000 --- a/lib_old/cli.sh +++ /dev/null @@ -1,49 +0,0 @@ -#!/bin/bash -set -e; - -declare -a commands -declare -a actions -declare -a hints -declare -a functions - -function register(){ - commands+=("$1") - actions+=("$2") - hints+=("$3") - functions+=("$4") -} - -function help(){ - printf 'Usage: %s [command] [action] [options]\n\n' ${0} - - for (( i = 0; i < ${#commands[@]}; ++i )); do - echo -e " ${commands[$i]}\t${actions[$i]}\t ${hints[$i]}" - done | column -ts $'\t' - - echo -} - -function cli(){ - cmd="${1}"; shift || true - action="${1}"; shift || true - valid_command=false - valid_action=false - - for (( i = 0; i < ${#commands[@]}; ++i )); do - if [ "${cmd}" = "${commands[$i]}" ]; then - valid_command=true - if [ "${action}" = "${actions[$i]}" ]; then - valid_action=true - "${functions[$i]}" "$@" - exit $? - fi - fi - done - echo - - [ -z "${cmd}" ] || [ "$valid_command" = true ] || printf 'invalid command "%s"\n\n' "${cmd}" - [ -z "${action}" ] || [ "$valid_action" = true ] || printf 'invalid action "%s"\n\n' "${action}" - help - - exit 1 -} diff --git a/lib_old/env.sh b/lib_old/env.sh deleted file mode 100644 index 32dec0aa..00000000 --- a/lib_old/env.sh +++ /dev/null @@ -1,73 +0,0 @@ -#!/bin/bash -set -e; - -# disable verbose logging -ENV_DISPLAY_WARNINGS=false - -# ensure docker runs containers as the current user (even when running with sudo) -# note: SUDO_USER is not portable to all systems but its the best we've got. -function set_docker_user(){ - CURRENT_USER=$(id -u ${SUDO_USER-${USER}}):$(id -g ${SUDO_USER-${USER}}) - if [ ! -z "${DOCKER_USER}" ] && [ "${DOCKER_USER}" != "${CURRENT_USER}" ]; then - 2>&1 printf "WARNING: The DOCKER_USER env var is deprecated, using %s.\n" ${CURRENT_USER} - 2>&1 echo "Remove the DOCKER_USER line from your .env file to silence this message." - fi - export DOCKER_USER="${CURRENT_USER}"; -} - -# ensure the user environment is correctly set up -function env_check(){ - if [ "${DOCKER_USER}" = "0:0" ]; then - echo "You are running as root" - echo "This is insecure and not supported by Pelias." - echo "Please try again as a non-root user." - exit 1 - fi - - if [ -z "${DATA_DIR}" ]; then - echo "You must set the DATA_DIR env var to a valid directory on your local machine." - echo - echo "Edit the '.env' file in this repository, update the DATA_DIR to a valid path and try again." - echo "Alternatively, you can set the variable in your environment using a command such as 'export DATA_DIR=/tmp'." - exit 1 - elif [ ! -d "${DATA_DIR}" ]; then - printf "The directory specified by DATA_DIR does not exist: %s\n" ${DATA_DIR} - echo - echo "Edit the '.env' file in this repository, update the DATA_DIR to a valid path and try again." - echo "Alternatively, you can set the variable in your environment using a command such as 'export DATA_DIR=/tmp'." - exit 1 - fi -} - -# loads environment vars from a stream (such as a file) -# example: env_load_stream < .env -function env_load_stream(){ - [[ -n $DATA_DIR ]] && printf "DATA_DIR is already set to '$DATA_DIR' - this may cause the DATA_DIR specified in the .env to be ignored\n" - while IFS='=' read -r key value; do - ([ -z $key ] || [ -z $value ]) && printf 'Invalid environment var "%s=%s"\n' $key $value && exit 1 - if [ -z ${!key} ]; then - export "${key}=${value}" - elif $ENV_DISPLAY_WARNINGS; then - printf '[warn] skip setting environment var "%s=%s", already set "%s=%s"\n' $key $value $key ${!key} - fi - done -} - -# ensure locale is correctly set? -# export LC_ALL=en_US.UTF-8 - -# load DATA_DIR and other vars from docker compose .env file -# note: strips comments and empty lines -[ -f .env ] && env_load_stream < <(grep -v '^$\|^\s*$\#' .env) - -# use the default compose file unless one was specified -# if [ -z "${COMPOSE_FILE}" ]; then -# if [ ! -f "docker-compose.yml" ]; then -# export COMPOSE_FILE="${BASEDIR}/docker-compose.yml" -# fi -# fi - -set_docker_user - -# ensure the user env is correctly set up -env_check From 78af11a2a82d79f4c6f7260f65339fbdda71d3eb Mon Sep 17 00:00:00 2001 From: arnesetzer <25772747+arnesetzer@users.noreply.github.com> Date: Mon, 17 Mar 2025 11:09:52 +0100 Subject: [PATCH 97/98] fix(cmd): Remove double negation in data dir check --- cmd/system/check.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/cmd/system/check.js b/cmd/system/check.js index 2db8c9fc..bcdab057 100644 --- a/cmd/system/check.js +++ b/cmd/system/check.js @@ -7,7 +7,12 @@ module.exports = { describe: 'ensure the system is correctly configured', handler: () => { if (platform == "win32") { - //TODO: Find a solid way to determine the admin status in windows (cmd&pwsh working) + exec('(net session >nul 2>&1 & echo %ERRORLEVEL%)', function (err, stdout) { + if(!err||stdout.includes("0")){ + console.error("You are running as root\nhis is insecure and not supported by Pelias.\nPlease try again as a non-root user.") + process.exit(1); + } + }); } //Assuming that ever other platform is *nix related else { @@ -24,7 +29,7 @@ module.exports = { console.error("Alternatively, you can set the variable in your environment using a command such as 'export DATA_DIR=/tmp'.") process.exit(1); } - if (!fs.existsSync(!env().DATA_DIR)) { + if (!fs.existsSync(env().DATA_DIR)) { console.error(`The directory specified by DATA_DIR does not exist:\n ${env().DATA_DIR}`); console.error("Edit the '.env' file in this repository, update the DATA_DIR to a valid path and try again."); console.error("Alternatively, you can set the variable in your environment using a command such as 'export DATA_DIR=/tmp'."); From 8814dca9cdb5209f7c594f2ae93a604226e912a9 Mon Sep 17 00:00:00 2001 From: arnesetzer <25772747+arnesetzer@users.noreply.github.com> Date: Mon, 17 Mar 2025 11:14:14 +0100 Subject: [PATCH 98/98] fix(cmd): Fix wrong position of ! --- cmd/system/check.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cmd/system/check.js b/cmd/system/check.js index bcdab057..19c2745a 100644 --- a/cmd/system/check.js +++ b/cmd/system/check.js @@ -8,8 +8,8 @@ module.exports = { handler: () => { if (platform == "win32") { exec('(net session >nul 2>&1 & echo %ERRORLEVEL%)', function (err, stdout) { - if(!err||stdout.includes("0")){ - console.error("You are running as root\nhis is insecure and not supported by Pelias.\nPlease try again as a non-root user.") + if(err||!stdout.includes("0")){ + console.error("You are running as root\nThis is insecure and not supported by Pelias.\nPlease try again as a non-root user.") process.exit(1); } }); @@ -18,7 +18,7 @@ module.exports = { else { exec('echo $(id -u ${SUDO_USER-${USER}}):$(id -g ${SUDO_USER-${USER}})', function (err, stdout, stderror) { if (stdout == "0:0") { - console.error("You are running as root\nhis is insecure and not supported by Pelias.\nPlease try again as a non-root user.") + console.error("You are running as root\nThis is insecure and not supported by Pelias.\nPlease try again as a non-root user.") process.exit(1); } })