on master help sign in
Add Meilisearch engine

Website: https://www.meilisearch.com/

commit07f5edce3d47164eb6b7858a1d025a707d716689 authorNoémi Ványi <sitbackandwait@gmail.com> dateFri 2 Apr 2021, 16:16 (6 years ago) parentdd2b106
3 files changed+67
Makefile+1 searx/engines/meilisearch.py+59 searx/settings.yml+7
Makefile+1
@@ -191,6 +191,7 @@ PYLINT_FILES=\
191191 searx/engines/google_videos.py \
192192 searx/engines/google_images.py \
193193 searx/engines/mediathekviewweb.py \
194+ searx/engines/meilisearch.py \
194195 searx/engines/solidtorrents.py \
195196 searx/engines/solr.py \
196197 searx/engines/google_scholar.py \
searx/engines/meilisearch.pynew file+59
@@ -0,0 +1,59 @@
1+# SPDX-License-Identifier: AGPL-3.0-or-later
2+"""
3+ Meilisearch
4+"""
5+
6+# pylint: disable=global-statement, missing-function-docstring
7+
8+from json import loads, dumps
9+
10+
11+base_url = 'http://localhost:7700'
12+index = ''
13+auth_key = ''
14+facet_filters = list()
15+_search_url = ''
16+result_template = 'key-value.html'
17+categories = ['general']
18+paging = True
19+
20+
21+def init(_):
22+ if index == '':
23+ raise ValueError('index cannot be empty')
24+
25+ global _search_url
26+ _search_url = base_url + '/indexes/' + index + '/search'
27+
28+
29+def request(query, params):
30+ if auth_key != '':
31+ params['headers']['X-Meili-API-Key'] = auth_key
32+
33+ params['headers']['Content-Type'] = 'application/json'
34+ params['url'] = _search_url
35+ params['method'] = 'POST'
36+
37+ data = {
38+ 'q': query,
39+ 'offset': 10 * (params['pageno'] - 1),
40+ 'limit': 10,
41+ }
42+ if len(facet_filters) > 0:
43+ data['facetFilters'] = facet_filters
44+
45+ params['data'] = dumps(data)
46+
47+ return params
48+
49+
50+def response(resp):
51+ results = []
52+
53+ resp_json = loads(resp.text)
54+ for result in resp_json['hits']:
55+ r = {key: str(value) for key, value in result.items()}
56+ r['template'] = result_template
57+ results.append(r)
58+
59+ return results
searx/settings.yml+7
@@ -700,6 +700,13 @@ engines:
700700 require_api_key: false
701701 results: HTML
702702
703+# - name : meilisearch
704+# engine : meilisearch
705+# shortcut: mes
706+# enable_http: True
707+# base_url : http://localhost:7700
708+# index : my-index
709+
703710 - name : microsoft academic
704711 engine : microsoft_academic
705712 categories : science