ExAlice

WARNING: This is alpha software, do not use in production!
Installation of exalice from this repository
Ensure that Elasticsearch 6.4.0 is installed
Ensure that the analysis-icu plugin is installed:
# On Debian based systems
sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-icuThe path of the `plugin` command varies between different operating systemsEnsure that Elasticsearch is started
Run the import (after fetching deps, and compiling everything):
mix exalice.bootstrap # Populate the storage with sample data in this repositoryWhen exalice is used as an external dependency in your application
-
Add exalice to your list of dependencies in
mix.exs:
def deps do
[{:exalice, "~> 0.0.7-alpha"}]
endEnsure that Elasticsearch 6.4.0 is installed
Ensure that the analysis-icu plugin is installed:
sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-icuThe path might vary between different operating systemsEnsure that Elasticsearch is started
Add to your config/config.exs:
config :exalice,
provider: ExAlice.Geocoder.Providers.Elastic,
geocoder: ExAlice.Geocoder.Providers.OpenStreetMap,
index: :exalice,
doc_type: :location,
file: "data/germany-streets.json",
chunks: 5000The available options for the `geocoder:` are
`ExAlice.Geocoder.Providers.GoogleMaps` or
`ExAlice.Geocoder.Providers.OpenStreetMap`(optional) Put a json file generated with pbf2json from openstreetmap pbf(s) in your
data/folderCopy the germany-streets.json sample extract in your local
data/folder inside your applicationRun
mix exalice.bootstrap
To geocode an address execute:
Run
iex -S mixType
ExAlice.Geocoder.geocode("Via Recoaro 3, Broni")You should receive back data from the configured geocoder provider (OpenStreetMap or Google Maps)
If you run again
ExAlice.Geocoder.geocode("Via Recoaro, Broni")you should receive back data from the storage (no external lookup)
NOTE: At the moment the geocoder part that relies on google maps has no possibility to use a google maps api key.