summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam Tauber <asciimoo@gmail.com>2020-10-25 17:55:00 +0100
committerGitHub <noreply@github.com>2020-10-25 17:55:00 +0100
commit1ac755087cd4a15e4749c130807528eeae7b4f35 (patch)
tree36ceec1ae269363d2adff5a03a808001071b9511
parentaa3c18dda9329fff875328f6ba97483c417b149a (diff)
parent8e15d3e4c1ed077a42d67fdad19fa6ab00f91261 (diff)
Merge pull request #2271 from kvch/open-semantic-search-engine
Open Semantic Search Engine
-rw-r--r--searx/engines/opensemantic.py42
-rw-r--r--searx/settings.yml5
2 files changed, 47 insertions, 0 deletions
diff --git a/searx/engines/opensemantic.py b/searx/engines/opensemantic.py
new file mode 100644
index 000000000..9364bab41
--- /dev/null
+++ b/searx/engines/opensemantic.py
@@ -0,0 +1,42 @@
+"""
+Open Semantic Search
+
+ @website https://www.opensemanticsearch.org/
+ @provide-api yes (https://www.opensemanticsearch.org/dev)
+
+ @using-api yes
+ @results JSON
+ @stable yes
+ @parse url, title, content, publishedDate
+"""
+from dateutil import parser
+from json import loads
+from urllib.parse import quote
+
+base_url = 'http://localhost:8983/solr/opensemanticsearch/'
+search_string = 'query?q={query}'
+
+
+def request(query, params):
+ search_path = search_string.format(
+ query=quote(query),
+ )
+ params['url'] = base_url + search_path
+ return params
+
+
+def response(resp):
+ results = []
+ data = loads(resp.text)
+ docs = data.get('response', {}).get('docs', [])
+
+ for current in docs:
+ item = {}
+ item['url'] = current['id']
+ item['title'] = current['title_txt_txt_en']
+ if current.get('content_txt'):
+ item['content'] = current['content_txt'][0]
+ item['publishedDate'] = parser.parse(current['file_modified_dt'])
+ results.append(item)
+
+ return results
diff --git a/searx/settings.yml b/searx/settings.yml
index aa5f35256..a599ab285 100644
--- a/searx/settings.yml
+++ b/searx/settings.yml
@@ -540,6 +540,11 @@ engines:
shortcut : oap
timeout: 5.0
+# - name : opensemanticsearch
+# engine : opensemantic
+# shortcut : oss
+# base_url : 'http://localhost:8983/solr/opensemanticsearch/'
+
- name : openstreetmap
engine : openstreetmap
shortcut : osm