From dd35f85ddabf54d419a6fae572b2f257fed6efd6 Mon Sep 17 00:00:00 2001 From: Israel Yago Pereira Date: Wed, 11 Aug 2021 16:51:10 -0300 Subject: [PATCH 1/4] WIP: Using Gunicorn instead of dev server of flask --- Dockerfile | 4 +++- src/wsgi.py | 4 ++++ 2 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 src/wsgi.py diff --git a/Dockerfile b/Dockerfile index 4d4ec75..ca24848 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,6 +7,8 @@ WORKDIR /usr/src/app COPY requirements.txt ./ RUN pip install --no-cache-dir -r requirements.txt +RUN pip install --no-cache-dir gunicorn + COPY src . -CMD [ "flask", "run" ] +CMD [ "gunicorn", "wsgi:application" ] diff --git a/src/wsgi.py b/src/wsgi.py new file mode 100644 index 0000000..1043a11 --- /dev/null +++ b/src/wsgi.py @@ -0,0 +1,4 @@ +from app import app as application + +if __name__ == "__main__": + application.run() \ No newline at end of file -- GitLab From fb8c3758408b904b5a89570b336d5c2685acf5bd Mon Sep 17 00:00:00 2001 From: Israel Yago Pereira Date: Thu, 12 Aug 2021 14:10:10 -0300 Subject: [PATCH 2/4] Using uwsgi --- Dockerfile | 9 ++++++--- requirements.txt | 1 + 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index ca24848..8add389 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,11 +4,14 @@ EXPOSE 5000 WORKDIR /usr/src/app +RUN apk add --update alpine-sdk && \ +apk add libffi-dev openssl-dev && \ +apk --no-cache --update add build-base + COPY requirements.txt ./ -RUN pip install --no-cache-dir -r requirements.txt -RUN pip install --no-cache-dir gunicorn +RUN pip install --no-cache-dir -r requirements.txt COPY src . -CMD [ "gunicorn", "wsgi:application" ] +CMD [ "uwsgi", "--socket", "0.0.0.0:5000", "--protocol=http", "--wsgi-file", "./wsgi.py", "--callable", "application" ] diff --git a/requirements.txt b/requirements.txt index 265688d..6cca06f 100644 --- a/requirements.txt +++ b/requirements.txt @@ -9,4 +9,5 @@ MarkupSafe==2.0.1 python-dotenv==0.18.0 soupsieve==2.2.1 urllib3==1.26.6 +uWSGI==2.0.19.1 Werkzeug==2.0.1 -- GitLab From c4d91110c84c69a56fd323fdebcca1f9aa4aca8b Mon Sep 17 00:00:00 2001 From: Israel Yago Pereira Date: Mon, 16 Aug 2021 16:10:12 -0300 Subject: [PATCH 3/4] Search by language --- src/app.py | 5 +++-- src/searcher.py | 23 +++++++++++++++-------- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/src/app.py b/src/app.py index 259c08d..0d1aa1f 100644 --- a/src/app.py +++ b/src/app.py @@ -1,4 +1,4 @@ -from flask import Flask, jsonify +from flask import Flask, jsonify, request from searcher import search_query from indexer import connect_elastic from dotenv import load_dotenv @@ -15,7 +15,8 @@ es = connect_elastic(es_host, es_port) @app.route('/search/') def search(query): - result = search_query(es, query) + language = request.args.get("lang", "en") + result = search_query(es, query, language) data = { 'search_results': result, } diff --git a/src/searcher.py b/src/searcher.py index 881b33a..e5442d4 100644 --- a/src/searcher.py +++ b/src/searcher.py @@ -1,14 +1,21 @@ -def search_query(es, user_query): +def search_query(es, user_query, language): query = { "query": { - "multi_match": { - "query": user_query, - "type": "best_fields", - "fuzziness": "AUTO", - "tie_breaker": 0.3, - "fields": ["title^3", "body"] - } + "bool": { + "must": { + "multi_match": { + "query": user_query, + "type": "best_fields", + "fuzziness": "AUTO", + "tie_breaker": 0.3, + "fields": ["title^3", "body"], + } + }, + "filter": [ + { "term": { "lang": language } } + ] + }, }, "highlight": { "fields" : { -- GitLab From 5528f94c381105f72376d7ab1868b18e27e7f802 Mon Sep 17 00:00:00 2001 From: Israel Yago Pereira Date: Tue, 17 Aug 2021 11:07:39 -0300 Subject: [PATCH 4/4] Revert "Search by language" This reverts commit c4d91110c84c69a56fd323fdebcca1f9aa4aca8b. --- src/app.py | 5 ++--- src/searcher.py | 23 ++++++++--------------- 2 files changed, 10 insertions(+), 18 deletions(-) diff --git a/src/app.py b/src/app.py index 0d1aa1f..259c08d 100644 --- a/src/app.py +++ b/src/app.py @@ -1,4 +1,4 @@ -from flask import Flask, jsonify, request +from flask import Flask, jsonify from searcher import search_query from indexer import connect_elastic from dotenv import load_dotenv @@ -15,8 +15,7 @@ es = connect_elastic(es_host, es_port) @app.route('/search/') def search(query): - language = request.args.get("lang", "en") - result = search_query(es, query, language) + result = search_query(es, query) data = { 'search_results': result, } diff --git a/src/searcher.py b/src/searcher.py index e5442d4..881b33a 100644 --- a/src/searcher.py +++ b/src/searcher.py @@ -1,21 +1,14 @@ -def search_query(es, user_query, language): +def search_query(es, user_query): query = { "query": { - "bool": { - "must": { - "multi_match": { - "query": user_query, - "type": "best_fields", - "fuzziness": "AUTO", - "tie_breaker": 0.3, - "fields": ["title^3", "body"], - } - }, - "filter": [ - { "term": { "lang": language } } - ] - }, + "multi_match": { + "query": user_query, + "type": "best_fields", + "fuzziness": "AUTO", + "tie_breaker": 0.3, + "fields": ["title^3", "body"] + } }, "highlight": { "fields" : { -- GitLab