diff options
author | Bryan Newbold <bnewbold@robocracy.org> | 2020-07-24 20:02:05 -0700 |
---|---|---|
committer | Bryan Newbold <bnewbold@robocracy.org> | 2020-07-30 18:28:03 -0700 |
commit | 5bbb493b94a63d66151a53837aa66f0d986df497 (patch) | |
tree | f0dd843415efbf9da6c855e6c2fe504e0ba7e075 /python/fatcat_web/search.py | |
parent | 19094b9994a1fc45450a96989ed41910d849c6d7 (diff) | |
download | fatcat-5bbb493b94a63d66151a53837aa66f0d986df497.tar.gz fatcat-5bbb493b94a63d66151a53837aa66f0d986df497.zip |
first iteration of flexible search coverage
Diffstat (limited to 'python/fatcat_web/search.py')
-rw-r--r-- | python/fatcat_web/search.py | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/python/fatcat_web/search.py b/python/fatcat_web/search.py index 7ae7e73b..3ba6fdb2 100644 --- a/python/fatcat_web/search.py +++ b/python/fatcat_web/search.py @@ -366,6 +366,42 @@ def get_elastic_entity_stats() -> dict: return stats +def get_elastic_search_coverage(query: ReleaseQuery) -> dict: + + search = Search(using=app.es_client, index=app.config['ELASTICSEARCH_RELEASE_INDEX']) + search = search.query( + "query_string", + query=query.q, + default_operator="AND", + analyze_wildcard=True, + allow_leading_wildcard=False, + lenient=True, + fields=["biblio"], + ) + search.aggs.bucket( + 'preservation', + 'terms', + field='preservation', + missing='_unknown', + ) + + search = search[:0] + + search = search.params(request_cache=True) + resp = wrap_es_execution(search) + + preservation_bucket = agg_to_dict(resp.aggregations.preservation) + preservation_bucket['total'] = resp.hits.total + for k in ('bright', 'dark', 'shadows_only', 'none'): + if not k in preservation_bucket: + preservation_bucket[k] = 0 + stats = { + 'total': resp.hits.total, + 'preservation': preservation_bucket, + } + + return stats + def get_elastic_container_stats(ident, issnl=None): """ Returns dict: |