Local Search Engines¶
Administrators might find themselves wanting to integrate locally running search engines. The following ones are supported for now:
Each search engine is powerful, capable of full-text search.  All of the engines
above are added to settings.yml just commented out, as you have to
base_url for all them.
Please note that if you are not using HTTPS to access these engines, you have to enable
HTTP requests by setting enable_http to True.
Futhermore, if you do not want to expose these engines on a public instance, you
can still add them and limit the access by setting tokens as described in
section Private Engines (tokens).
MeiliSearch¶
MeiliSearch is aimed at individuals and small companies. It is designed for small-scale (less than 10 million documents) data collections. E.g. it is great for storing web pages you have visited and searching in the contents later.
The engine supports faceted search, so you can search in a subset of documents
of the collection.  Furthermore, you can search in MeiliSearch instances that
require authentication by setting auth_token.
Here is a simple example to query a Meilisearch instance:
- name: meilisearch
  engine: meilisearch
  shortcut: mes
  base_url: http://localhost:7700
  index: my-index
  enable_http: true
Elasticsearch¶
Elasticsearch supports numerous ways to query the data it is storing.  At the
moment the engine supports the most popular search methods (query_type):
- match,
- simple_query_string,
- termand
- terms.
If none of the methods fit your use case, you can select custom query type
and provide the JSON payload to submit to Elasticsearch in
custom_query_json.
The following is an example configuration for an Elasticsearch instance with
authentication configured to read from my-index index.
- name: elasticsearch
  shortcut: es
  engine: elasticsearch
  base_url: http://localhost:9200
  username: elastic
  password: changeme
  index: my-index
  query_type: match
  # custom_query_json: '{ ... }'
  enable_http: true
Solr¶
Solr is a popular search engine based on Lucene, just like Elasticsearch. But instead of searching in indices, you can search in collections.
This is an example configuration for searching in the collection
my-collection and get the results in ascending order.
- name: solr
  engine: solr
  shortcut: slr
  base_url: http://localhost:8983
  collection: my-collection
  sort: asc
  enable_http: true
Acknowledgment¶
This development was sponsored by Search and Discovery Fund of NLnet Foundation.