Free Australian Address Validation, Search and Autocomplete - addressr.mountain-pass.com.au
-
Install addressr
npm install @mountainpass/addressr -g
NOTE: If you are running windows, you'll need to use wsl
-
Start elastic search. For example run
docker pull docker.elastic.co/elasticsearch/elasticsearch:7.2.0 docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.2.0
-
Start API server. In a second window run:
export ELASTIC_PORT=9200 export ELASTIC_HOST=localhost addressr-server
-
Setup the env vars for the data loader. In a third window run:
export ELASTIC_PORT=9200 export ELASTIC_HOST=localhost export ADDRESSR_INDEX_TIMEOUT=30s export ADDRESSR_INDEX_BACKOFF=1000 export ADDRESSR_INDEX_BACKOFF_INCREMENT=1000 export ADDRESSR_INDEX_BACKOFF_MAX=10000
- Optional - enable geocodes by setting the following env vars for the data loader. In the third window run: NOTE: with geocodes enabled, indexing takes much longer and needs much more memory. Only use turn them on if you need them. You can always add them later.
export ADDRESSR_ENABLE_GEO=1 export NODE_OPTIONS=--max_old_space_size=8196
- Optional - limit the addresses to a single state by setting the
COVERED_STATES
env var for the data loader. This dramatically speeds up indexing. For example, in the third window run:
export COVERED_STATES=VIC,SA
Valid values are:
- ACT
- NSW
- NT
- OT
- QLD
- SA
- TAS
- VIC
- WA
-
Run data Loader. In the third window run:
addressr-loader
-
OK, so we stretched the truth a bit with the "Quick Start" heading. The truth is that it takes quite a while to download, store and index the 13+ million addresses from data.gov.au. So make a coffee, or tea, or find something else to do and come back in about an hour when it's done.
-
Search for an address
curl -i http://localhost:8080/addresses?q=LEVEL+25,+TOWER+3
-
Wire you address form up to the address-server api.
-
An updated G-NAF is released every 3 months. Put
addressr-loader
in a cron job or similar to keep addressr regularly updated
Environment Variable | Value | Description | Default |
---|---|---|---|
ELASTIC_PROTOCOL | http | Connect to elastic search over http | ✅ |
ELASTIC_PROTOCOL | https | Connect to elastic search over https | |
ELASTIC_USERNAME | blank | Connect to elastic search without authentication | ✅ |
ELASTIC_USERNAME | non-blank | Connect to elastic search with the specified username | |
ELASTIC_PASSWORD | blank | Connect to elastic search without authentication | ✅ |
ELASTIC_PASSWORD | non-blank | Connect to elastic search with the specified password |
elasticsearch-oss >= 7.2.0 with 1.4GiB of memory
Node JS >= 11.14.0 with 1GiB of memory
Node JS >= 11.14.0 with 8GiB of memory
Node JS >= 11.14.0 with 64MiB of memory