Releases are found at GitHub /releases. Each containing a link to the changelog for the given release. A consolidated changelog for all releases is found at CHANGELOG.md in the project root.
The changelog is made with github_changelog_generator and can be created with the command github_changelog_generator -u DBCDK -p tanterne -- you may need a valid GitHub token to run the command.
Download Elastic Search, like: https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.6.1.tar.gz
Install and start it
Records are dumped from cisterne with rrdump like:
rrdump -m EXPANDED -f ISO -a 190007 -e UTF-8 -u http://rawrepo-record-service.cisterne.svc.cloud.dbc.dk -o dk5_total_iso2709
iso2709ToElasticLoad -i dk5_total.iso2709 -o elastic_bulk_load.json
Filter only one dk5 group like (for develop/test/debug purposes only)
iso2709ToElasticLoad -f 13 -i dk5_total.iso2709 -o elastic_bulk_load.json
SERVER=localhost:9200curl -XDELETE "${SERVER}/*" -H 'Content-Type: application/json'curl -XPUT "${SERVER}/systematic" -H 'Content-Type: application/json' -d '{ "mappings":{ "dk5":{ "properties":{ "parent":{ "enabled":"false" } } } }, "settings": { "number_of_shards": 1 } }'curl -XPUT "${SERVER}/register" -H 'Content-Type: application/json' -d '{ "settings":{ "analysis":{ "char_filter":{ "dk5":{ "type":"mapping", "mappings":[":=>kolon"] } }, "analyzer":{ "default":{ "type":"custom", "char_filter":["dk5"], "tokenizer":"standard", "filter":["lowercase"] } } }, "number_of_shards": 1 } }'curl -XPOST "${SERVER}/_bulk?refresh=wait_for" -H 'Content-Type: application/json' --data-binary '@elastic_bulk_load.json'curl -XPUT "${SERVER}/*/_settings" -H 'Content-Type: application/json' -d '{ "index": { "max_result_window": 50000 } }'
After cloning the repository, run npm install to install dependencies. Copy test.env to env.env and set the environment variables (see below) to you need/liking. The application is started with npm run dev, which include nodemon in order to restart the application, when the code is changed.
When started, the application will spawn two versions of the user interface: pro and non-pro. The pro version contains a more advanced featureset targeted professional users, while the non-pro version is targeted endusers on the libraries and therefore exposes a more limited and focussed featureset. The two versions will be available on the ports specified as environment variables. See Environment variables for more info.
In pipelines buildjobs for the dk5 image, and build, dump and convert dk5-data is found.
Deploy jobs is found in DBC gitlab: dk5-deploy
Dataload for staging and prod is found in DBC gitlab: dk5-dataload
The variables are specified at the form name : internal config object. References in the log from the startup, will use the internal config object.
-
APP_NAME:app.name
Default:no name -
ELASTIC_HOST:elastic.host
host and port, like localhost:9200 -
ELASTIC_LOG:elastic.log
Set Elastic Search log level (trace, warning, error). default: error, warning -
LOG_LEVEL:log.level
Specifies the log level used by the application. Defaults toINFOLog level constants supported::OFF(0),ERROR(1),WARN(2),WARNING(2),INFO(3),DEBUG(4),TRACE(5) -
NEWRELIC_LICENSE_KEY: not validated
When given a valid license key the applicaion will report to New Relic and idetify itself asTanterne - DK5. The given value inNEWRELIC_LICENSE_KEYis not not validated but if an invalid license key is given, the New Relic deamon wont start which happens silenty. -
NODE_ENV:app.env
When run in production theNODE_ENVshould be set toproduction:NODE_ENV=production -
PORT:app.port
Specifies the port to expose the application. -
PRO_PORT:pro.port
Specifies the port to expose the pro-version of the application. -
PRETTY_LOG:log.pretty
Set to1(PRETTY_LOG=1) for pretty printed log statements. Any other setting, will result in one-line log statements.
-
/api/hierarchy/?q=india -
/api/list/?q=61.643,13.12 -
/api/search/?q=india&limit=1&offset=0 -
/api/suggest/?q=india
See architecture.jpg