123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- ===============
- 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 install
- dependencies before using them.
- By default, the engines use the ``key-value`` template for displaying results /
- see :origin:`oscar <searx/templates/oscar/result_templates/key-value.html>` &
- :origin:`simple <searx/templates/simple/result_templates/key-value.html>`
- themes. 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}
- 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 :ref:`private engines`.
- Configure the engines
- =====================
- `NoSQL databases`_ are used for storing arbitrary data without first defining
- their structure.
- Extra Dependencies
- ------------------
- For using :ref:`engine redis_server` or :ref:`engine mongodb` you need to
- install additional packages in Python's Virtual Environment of your SearxNG
- instance. To switch into the environment (:ref:`searx-src`) you can use
- :ref:`searx.sh`::
- $ sudo utils/searx.sh shell
- (searx-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 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:
- .. 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 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:
- .. 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 for
- Acknowledgment
- ==============
- This development was sponsored by `Search and Discovery Fund
- <https://nlnet.nl/discovery>`_ of `NLnet Foundation <https://nlnet.nl/>`_.
|