Skip to content

tulibraries/tul_cob-web-solr

Repository files navigation

TUL COB Web Content Solr Configurations

CircleCI

These are the Solr configuration files for the TUL Cob (LibrarySearch) web content search & faceting Solr collection.

Prerequisites

  • These configurations are built for Solr 8.3.1
  • The instructions below presume a SolrCloud multi-node setup (using an external Zookeeper)

Local Testing / Development

To test locally do the following.

  • make up: Will spin up a local Solr instance and ruby container for running tests.
  • make load-data: Will load required data into Solr instance.
  • make test: Will run the search relevancy tests.

Miscellaneous

Starting over

To start over from scratch you can run make down followed by make up There is a make reload-config which reloads the Solr config, but this will not delete the documents that were already present.

Beyond the basics

Anything more interesting than a simple local test should probably happen inside the respective container.

Use make tty-app to bash into the ruby container. Use make tty-solr to bash into the solr container.

Gem updates

Gemfile.lock MUST NOT be updated from outside the container; doing so may cause conflicts with bundler version that is used inside the container vs whatever the local version of bundler that you have installed.

To that end, if you need to update a gem do the following:

  • make tty-app
  • Once inside the container run bundle update [gem-name]

SolrCloud Deployment

All PRs merged into the main branch are not deployed anywhere. Only releases are deployed.

Production

Once the main branch has been adequately tested and reviewed, a release is cut. Upon creating the release tag (generally just an integer), the following occurs:

  1. new ConfigSet of tul_cob-web-{release-tag} is created in Production SolrCloud;
  2. new Collection of tul_cob-web-{release-tag}-init is created in Production SolrCloud w/the requisite ConfigSet (this Collection is largely ignored);
  3. a new QA alias of tul_cob-web-{release-tag}-qa is created in Production SolrCloud, pointing to the init Collection;
  4. a new Stage alias of tul_cob-web-{release-tag}-stage is created in Production SolrCloud, pointing to the init Collection;
  5. a new Production alias of tul_cob-web-{release-tag}-prod is created in Production SolrCloud, pointing to the init Collection;
  6. and, manually, a full reindex DAG is kicked off from Airflow Production to this new tul_cob-web alias. Upon completion of the reindex, relevant clients are redeployed pointing at their new alias, and then QA & UAT review occur.

See the process outlined here: https://github.com/tulibraries/docs/blob/main/services/solrcloud.md