The following NoSQL databases are supported:
All of the engines above are just commented out in the settings.yml, as you have to set various options and install dependencies before using them.
By default, the engines use the
key-value template for displaying results /
see oscar &
themes. If you are not satisfied with the original result layout, you can use
your own template, set
result_template attribute to
place the templates at:
Futhermore, if you do not wish 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).
Configure the engines¶
NoSQL databases are used for storing arbitrary data without first defining their structure.
For using Redis Server or MongoDB you need to install additional packages in Python’s Virtual Environment of your SearXNG instance. To switch into the environment (Install SearXNG & dependencies) you can use utils/searx.sh:
$ sudo utils/searx.sh shell (searx-pyenv)$ pip install ...
Redis is an open source (BSD licensed), in-memory data structure (key value
based) store. Before configuring the
redis_server engine, you must install
the dependency redis.
Select a database to search in and set its index in the option
db. You can
either look for exact matches or use partial keywords to find what you are
looking for by configuring
exact_match_only. You find an example
# Required dependency: redis - name: myredis shortcut : rds engine: redis_server exact_match_only: false host: '127.0.0.1' port: 6379 enable_http: true password: '' db: 0
In order to query MongoDB, you have to select a
database and a
collection. Furthermore, you have to select a
key that is going to be
searched. MongoDB also supports the option
exact_match_only, so configure
it as you wish. Below is an example configuration for using a MongoDB
# MongoDB engine # Required dependency: pymongo - name: mymongo engine: mongodb shortcut: md exact_match_only: false host: '127.0.0.1' port: 27017 enable_http: true results_per_page: 20 database: 'business' collection: 'reviews' # name of the db collection key: 'name' # key in the collection to search for