[PR-3366] https://github.com/searx/searx/pull/3366 Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
3.7 KiB
NoSQL databases
further read
The following NoSQL databases are supported:
engine redis_serverengine mongodb
All of the engines above are just commented out in the settings.yml
<searx/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 simple <searx/templates/simple/result_templates/key-value.html> theme. If you are not satisfied with the original result layout, you can use your own template, set result_template attribute to {template_name} and place the templates at:
searx/templates/{theme_name}/result_templates/{template_name}
Furthermore, 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.
Configure the engines
NoSQL databases are used for storing arbitrary data without first defining their structure.
Extra Dependencies
For using engine redis_server or engine mongodb you need to install additional packages in Python's Virtual Environment of your SearXNG instance. To switch into the environment (searxng-src) you can use searxng.sh:
$ sudo utils/searxng.sh instance cmd bash
(searxng-pyenv)$ pip install ...
Redis Server
info
pip installredis- redis.io
redis_server.py <searx/engines/redis_server.py>
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 configuration below:
# 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: 0MongoDB
MongoDB is a document based database program that handles JSON like data. Before configuring the mongodb engine, you must install the dependency redis.
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 collection:
# 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 forAcknowledgment
This development was sponsored by Search and Discovery Fund of NLnet Foundation.