Solr Search Loader
Download this ETL
Solr Search ETL
Atlas BI Library ETL | Solr Search Engine
Website β’ Demo β’ Documentation β’ Chat
Load Atlas metadata into the Solr search engine that powers Atlas' search.
β π Getting Started
In order to use these scripts you should already have Atlas published, with Solr started. See the Atlas BI Libary docs.
β Dependencies
β Java
For development purposes, sorl search can be started directly from the Atlas source code.
- Install Java JRE
- Add a system environment variable called
JAVA_HOMEwith the path to java, for exampleC:\Program Files\Java\jdk-17.0.1. - In your terminal navigate to
/web/solr/in the Atlas source code. Run./bin/solr startto start solr.
β Python
This ETL uses python > 3.8. Python can be installed from https://www.python.org/downloads/
C++ build tools are needed on Windows OS.
ODBC Driver for SQL Server is required for connecting to the database.
β Install Packages
This ETL uses poetry as the package manager. Alternatively, you can use pip to install the dependencies listed in pyproject.toml/dependencies.
poetry install
β Create a .env file
Variables can either be set in the environment, or added to a .env file.
SOLRURL=http://localhost:8983/solr/atlas
SOLRLOOKUPURL=http://localhost:8983/solr/atlas_lookups
ATLASDATABASE=DRIVER={ODBC Driver 18 for SQL Server};SERVER=server_name;DATABASE=atlas;UID=user_name;PWD=password;TrustServerCertificate=Yes;"
# Optional for bookstack etl
BOOKSTACKURL=https://docs.example.com
BOOKSTACKTOKENID=123456
BOOKSTACKTOKENSECRET=78910111213
β Running
delete.py script should be run once daily to empty Solr.
The remaining atlas_*.py scripts can be run periodically through the day to keep search results current.
poetry run python delete.py
poetry run python atlas_collections.py
poetry run python atlas_initiatives.py
poetry run python atlas_groups.py
poetry run python atlas_terms.py
poetry run python atlas_lookups.py
poetry run python atlas_users.py
poetry run python atlas_reports.py
# Optional etl to load documents from bookstack. Use this as an example etl for loading external content into search!
poetry run python atlas_bookstack.py
β π Contributing
This repository uses pre-commit and commitzen. Please commit npm run commit && git push.