mirror of https://github.com/searx/searx
Add blog post about NoSQL datastores
This commit is contained in:
parent
a8988885a5
commit
3b192e6387
|
@ -14,3 +14,4 @@ Blog
|
||||||
command-line-engines
|
command-line-engines
|
||||||
search-indexer-engines
|
search-indexer-engines
|
||||||
sql-engines
|
sql-engines
|
||||||
|
search-database-engines
|
||||||
|
|
|
@ -0,0 +1,95 @@
|
||||||
|
===============================
|
||||||
|
Query more of your NoSQL stores
|
||||||
|
===============================
|
||||||
|
|
||||||
|
From now on, searx lets you to query your NoSQL data stores:
|
||||||
|
|
||||||
|
* `Redis`_
|
||||||
|
* `MongoDB`_
|
||||||
|
|
||||||
|
The reference configuration of the engines are included ``settings.yml`` just commented out,
|
||||||
|
as you have to set various options and install dependencies before using them.
|
||||||
|
|
||||||
|
By default, the engines use ``key-value`` template for displaying results.
|
||||||
|
If you are not satisfied with the original result layout,
|
||||||
|
you can use your owm template by placing the template under
|
||||||
|
``searx/templates/{theme_name}/result_templates/{template_name}`` and setting
|
||||||
|
``result_template`` attribute to ``{template_name}``.
|
||||||
|
|
||||||
|
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 the `blog post about
|
||||||
|
private engines`_.
|
||||||
|
|
||||||
|
Configuring searx to use the stores
|
||||||
|
===================================
|
||||||
|
|
||||||
|
NoSQL data stores are used for storing arbitrary data without first defining their
|
||||||
|
structure.
|
||||||
|
|
||||||
|
Redis
|
||||||
|
-----
|
||||||
|
|
||||||
|
Reqired package: ``redis``
|
||||||
|
|
||||||
|
Redis is a key value based data store usually stored in memory.
|
||||||
|
|
||||||
|
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``.
|
||||||
|
|
||||||
|
In this example you can search for exact matches in your first database:
|
||||||
|
|
||||||
|
.. code:: yaml
|
||||||
|
|
||||||
|
- name : mystore
|
||||||
|
engine : redis_server
|
||||||
|
exact_match_only : True
|
||||||
|
host : 127.0.0.1
|
||||||
|
port : 6379
|
||||||
|
password : secret-password
|
||||||
|
db : 0
|
||||||
|
shortcut : rds
|
||||||
|
enable_http : True
|
||||||
|
|
||||||
|
|
||||||
|
MongoDB
|
||||||
|
-------
|
||||||
|
|
||||||
|
Required package: ``pymongo``
|
||||||
|
|
||||||
|
MongoDB is a document based database program that handles JSON like data.
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
Above is an example configuration for using a MongoDB collection:
|
||||||
|
|
||||||
|
.. code:: yaml
|
||||||
|
|
||||||
|
- name : mymongo
|
||||||
|
engine : mongodb
|
||||||
|
shortcut : md
|
||||||
|
host : '127.0.0.1'
|
||||||
|
port : 27017
|
||||||
|
database : personal
|
||||||
|
collection : income
|
||||||
|
key : month
|
||||||
|
enable_http: True
|
||||||
|
|
||||||
|
|
||||||
|
Acknowledgement
|
||||||
|
===============
|
||||||
|
|
||||||
|
This development was sponsored by `Search and Discovery Fund`_ of `NLnet Foundation`_ .
|
||||||
|
|
||||||
|
.. _Redis: https://redis.io/
|
||||||
|
.. _MongoDB: https://mongodb.com/
|
||||||
|
.. _blog post about private engines: private-engines.html#private-engines
|
||||||
|
.. _Search and Discovery Fund: https://nlnet.nl/discovery
|
||||||
|
.. _NLnet Foundation: https://nlnet.nl/
|
||||||
|
|
||||||
|
|
||||||
|
| Happy hacking.
|
||||||
|
| kvch // 2021.07.13 23:16
|
||||||
|
|
Loading…
Reference in New Issue