Spaces:
Runtime error
Runtime error
| from flask import current_app | |
| def add_to_index(index, model): | |
| if not current_app.elasticsearch: | |
| return | |
| payload = {} | |
| for field in model.__searchable__: | |
| payload[field] = getattr(model, field) | |
| current_app.elasticsearch.index(index=index, id=model.id, document=payload) | |
| def remove_from_index(index, model): | |
| if not current_app.elasticsearch: | |
| return | |
| current_app.elasticsearch.delete(index=index, id=model.id) | |
| def query_index(index, query, page, per_page): | |
| if not current_app.elasticsearch: | |
| return [], 0 | |
| search = current_app.elasticsearch.search( | |
| index=index, | |
| query={'multi_match': {'query': query, 'fields': ['*']}}, | |
| from_=(page - 1) * per_page, | |
| size=per_page) | |
| ids = [int(hit['_id']) for hit in search['hits']['hits']] | |
| return ids, search['hits']['total']['value'] | |