| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 | ===============NoSQL databases===============.. sidebar:: further read   - `NoSQL databases <https://en.wikipedia.org/wiki/NoSQL>`_   - `redis.io <https://redis.io/>`_   - `MongoDB <https://www.mongodb.com>`_The following `NoSQL databases`_ are supported:- :ref:`engine redis_server`- :ref:`engine mongodb`All of the engines above are just commented out in the :origin:`settings.yml<searx/settings.yml>`, as you have to set various options and installdependencies before using them.By default, the engines use the ``key-value`` template for displaying results /see :origin:`simple <searx/templates/simple/result_templates/key-value.html>`theme.  If you are not satisfied with the original result layout, you can useyour own template, set ``result_template`` attribute to ``{template_name}`` andplace the templates at::  searx/templates/{theme_name}/result_templates/{template_name}Futhermore, if you do not wish to expose these engines on a public instance, youcan still add them and limit the access by setting ``tokens`` as described insection :ref:`private engines`.Configure the engines=====================`NoSQL databases`_ are used for storing arbitrary data without first definingtheir structure.Extra Dependencies------------------For using :ref:`engine redis_server` or :ref:`engine mongodb` you need toinstall additional packages in Python's Virtual Environment of your SearXNGinstance.  To switch into the environment (:ref:`searxng-src`) you can use:ref:`searxng.sh`::  $ sudo utils/searxng.sh instance cmd bash  (searxng-pyenv)$ pip install ..... _engine redis_server:Redis Server------------.. _redis: https://github.com/andymccurdy/redis-py#installation.. sidebar:: info   - ``pip install`` redis_   - redis.io_   - :origin:`redis_server.py <searx/engines/redis_server.py>`Redis is an open source (BSD licensed), in-memory data structure (key valuebased) store.  Before configuring the ``redis_server`` engine, you must installthe dependency redis_.Select a database to search in and set its index in the option ``db``.  You caneither look for exact matches or use partial keywords to find what you arelooking for by configuring ``exact_match_only``.  You find an exampleconfiguration below:.. code:: yaml  # 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.. _engine mongodb:MongoDB-------.. _pymongo: https://github.com/mongodb/mongo-python-driver#installation.. sidebar:: info   - ``pip install`` pymongo_   - MongoDB_   - :origin:`mongodb.py <searx/engines/mongodb.py>`MongoDB_ is a document based database program that handles JSON like data.Before configuring the ``mongodb`` engine, you must install the dependencyredis_.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 besearched.  MongoDB_ also supports the option ``exact_match_only``, so configureit as you wish.  Below is an example configuration for using a MongoDBcollection:.. code:: yaml  # 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<https://nlnet.nl/discovery>`_ of `NLnet Foundation <https://nlnet.nl/>`_.
 |