.oO SearXNG Developer Documentation Oo.
Loading...
Searching...
No Matches
searx.engines.meilisearch Namespace Reference

Functions

 init (_)
 
 request (query, params)
 
EngineResults response (SXNG_Response resp)
 

Variables

str base_url = 'http://localhost:7700'
 
str index = ''
 
str auth_key = ''
 
list facet_filters = []
 
str _search_url = ''
 
list categories = ['general']
 
bool paging = True
 

Detailed Description

.. sidebar:: info

   - :origin:`meilisearch.py <searx/engines/meilisearch.py>`
   - `MeiliSearch <https://www.meilisearch.com>`_
   - `MeiliSearch Documentation <https://docs.meilisearch.com/>`_
   - `Install MeiliSearch
     <https://docs.meilisearch.com/learn/getting_started/installation.html>`_

MeiliSearch_ is aimed at individuals and small companies.  It is designed for
small-scale (less than 10 million documents) data collections.  E.g. it is great
for storing web pages you have visited and searching in the contents later.

The engine supports faceted search, so you can search in a subset of documents
of the collection.  Furthermore, you can search in MeiliSearch_ instances that
require authentication by setting `auth_key`_.

.. _auth_key: https://www.meilisearch.com/docs/reference/api/overview#authorization

Example
=======

Here is a simple example to query a Meilisearch instance:

.. code:: yaml

  - name: meilisearch
    engine: meilisearch
    shortcut: mes
    base_url: http://localhost:7700
    index: my-index
    enable_http: true
    # auth_key: Bearer XXXXX

Function Documentation

◆ init()

searx.engines.meilisearch.init ( _)

Definition at line 52 of file meilisearch.py.

52def init(_):
53 if index == '':
54 raise ValueError('index cannot be empty')
55
56 global _search_url
57 _search_url = base_url + '/indexes/' + index + '/search'
58
59

◆ request()

searx.engines.meilisearch.request ( query,
params )

Definition at line 60 of file meilisearch.py.

60def request(query, params):
61 if auth_key != '':
62 params['headers']['Authorization'] = auth_key
63
64 params['headers']['Content-Type'] = 'application/json'
65 params['url'] = _search_url
66 params['method'] = 'POST'
67
68 data = {
69 'q': query,
70 'offset': 10 * (params['pageno'] - 1),
71 'limit': 10,
72 }
73 if len(facet_filters) > 0:
74 data['facetFilters'] = facet_filters
75
76 params['data'] = dumps(data)
77
78 return params
79
80

◆ response()

EngineResults searx.engines.meilisearch.response ( SXNG_Response resp)

Definition at line 81 of file meilisearch.py.

81def response(resp: SXNG_Response) -> EngineResults:
82 res = EngineResults()
83
84 resp_json = resp.json()
85 for row in resp_json['hits']:
86 kvmap = {key: str(value) for key, value in row.items()}
87 res.add(res.types.KeyValue(kvmap=kvmap))
88
89 return res

Variable Documentation

◆ _search_url

str searx.engines.meilisearch._search_url = ''
protected

Definition at line 47 of file meilisearch.py.

◆ auth_key

str searx.engines.meilisearch.auth_key = ''

Definition at line 45 of file meilisearch.py.

◆ base_url

str searx.engines.meilisearch.base_url = 'http://localhost:7700'

Definition at line 43 of file meilisearch.py.

◆ categories

list searx.engines.meilisearch.categories = ['general']

Definition at line 48 of file meilisearch.py.

◆ facet_filters

list searx.engines.meilisearch.facet_filters = []

Definition at line 46 of file meilisearch.py.

◆ index

str searx.engines.meilisearch.index = ''

Definition at line 44 of file meilisearch.py.

◆ paging

bool searx.engines.meilisearch.paging = True

Definition at line 49 of file meilisearch.py.