aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBryan Newbold <bnewbold@robocracy.org>2022-02-08 14:35:39 -0800
committerBryan Newbold <bnewbold@robocracy.org>2022-02-09 17:35:50 -0800
commit6244c06abf8488fff87b30cb0a8433592f1f5d24 (patch)
treee125add62f7104de1b5304b035481d0d5997e774
parentfa1ad78cd0e00f524221f972889ee32373d7b94e (diff)
downloadfatcat-6244c06abf8488fff87b30cb0a8433592f1f5d24.tar.gz
fatcat-6244c06abf8488fff87b30cb0a8433592f1f5d24.zip
container search: iterate on SERP page (including stats)
-rw-r--r--python/fatcat_web/search.py16
-rw-r--r--python/fatcat_web/templates/container_search.html3
-rw-r--r--python/fatcat_web/templates/entity_macros.html63
3 files changed, 72 insertions, 10 deletions
diff --git a/python/fatcat_web/search.py b/python/fatcat_web/search.py
index 8cbe09f6..2a3515d4 100644
--- a/python/fatcat_web/search.py
+++ b/python/fatcat_web/search.py
@@ -178,7 +178,7 @@ def do_container_search(query: GenericQuery, deep_page_limit: int = 2000) -> Sea
search = Search(using=app.es_client, index=app.config["ELASTICSEARCH_CONTAINER_INDEX"])
- search = search.query(
+ basic_query = Q(
"query_string",
query=query.q,
default_operator="AND",
@@ -188,6 +188,20 @@ def do_container_search(query: GenericQuery, deep_page_limit: int = 2000) -> Sea
fields=["biblio"],
)
+ search = search.query(
+ "boosting",
+ positive=Q(
+ "bool",
+ must=basic_query,
+ should=[
+ Q("range", releases_total={"gte": 500}),
+ Q("range", releases_total={"gte": 5000}),
+ ],
+ ),
+ negative=Q("term", releases_total=0),
+ negative_boost=0.5,
+ )
+
# Sanity checks
limit = min((int(query.limit or 25), 100))
offset = max((int(query.offset or 0), 0))
diff --git a/python/fatcat_web/templates/container_search.html b/python/fatcat_web/templates/container_search.html
index 0eeed55e..f091fc3b 100644
--- a/python/fatcat_web/templates/container_search.html
+++ b/python/fatcat_web/templates/container_search.html
@@ -34,9 +34,10 @@
{% if found.results %}
{{ search_macros.top_results(query, found) }}
+ <br clear="all">
{% for entity in found.results %}
- {{ entity_macros.container_search_result_row(entity) }}
+ {{ entity_macros.container_search_result_row(entity, show_stats=True) }}
{% endfor %}
{% if found.results|length > 8 %}
diff --git a/python/fatcat_web/templates/entity_macros.html b/python/fatcat_web/templates/entity_macros.html
index 9b419c41..b801f3c5 100644
--- a/python/fatcat_web/templates/entity_macros.html
+++ b/python/fatcat_web/templates/entity_macros.html
@@ -267,23 +267,70 @@
{% endmacro %}
-{% macro container_search_result_row(entity) -%}
+{% macro container_search_result_row(entity, show_stats=False) -%}
<div>
- <h4 style="margin-top: 1em; margin-bottom: 4px; font-size: 1.1em;">
+ {% if show_stats %}
+ <div style="float: right; margin-left: 0.5em; margin-top:0px; width: 150px; text-align: right;">
+ {% if entity.releases_total %}
+ <b>~{{ "{:,}".format(entity.releases_total) }}</b> releases
+ {% elif entity.releases_total == 0 %}
+ <i>(not indexed)</i>
+ {% endif %}
+ {% if entity.releases_total %}
+ {{ preservation_bar({'bright': entity.preservation_bright, 'dark': entity.preservation_dark, 'none': entity.preservation_none, 'total': entity.releases_total}) }}
+ {% endif %}
+ </div>
+ {% endif %}
+ <h4 style="margin-top: 1em; margin-bottom: 0em; font-size: 1.1em;">
<a href="/container/{{ entity.ident }}" style="color: #2224c7;">{{ entity['name'] }}</a>
- {% if entity.is_oa %}<i class="icon unlock orange small"></i>{% endif %}
</h4>
+ {% if entity.original_name %}
+ <i>{{ entity.original_name }}</i></br>
+ {% endif %}
{% if entity.publisher %}
- <h5 style="margin-top: 4px; margin-bottom: 0px; font-size: 1em;">{{ entity.publisher }}</h5>
+ <a href="/container/search?q=publisher:%22{{ entity.publisher }}%22" style="color: black; margin-top: 0em;">{{ entity.publisher }}</a>
+ <br>
{% endif %}
{% if entity.issnl %}
- <a href="https://portal.issn.org/resource/ISSN/{{entity.issnl }}" style="color: green;">issn:{{ entity.issnl }}</a>
+ <a href="https://portal.issn.org/resource/ISSN/{{ entity.issnl }}" style="color: green;">issnl:{{ entity.issnl }}</a> &nbsp;
+ {% endif %}
+ {% if entity.wikidata_qid %}
+ <a href="https://wikidata.org/wiki/{{ entity.wikidata_qid }}" style="color: green;">wikidata:{{ entity.wikidata_qid }}</a> &nbsp;
+ {% endif %}
+ {% if entity.dblp_prefix %}
+ <a href="https://dblp.org/db/{{ entity.dblp_prefix }}/index.html" style="color: green;">dblp:{{ entity.dblp_prefix }}</a> &nbsp;
+ {% endif %}
+ {% if entity.ia_sim_collection %}
+ <a href="https://archive.org/details/{{ entity.ia_sim_collection }}" style="color: green;">[archive.org]</a> &nbsp;
+ {% elif entity.sim_pubid %}
+ <a href="https://archive.org/search.php?query=sim_pubid%3A{{ entity.sim_pubid }}%20mediatype%3Acollection" style="color: green;">[archive.org]</a> &nbsp;
+ {% endif %}
+ {# too much clutter
+ {% if entity.country_code %}
+ <span style="color: black;">country:{{ entity.country_code }}</span> &nbsp;
+ {% endif %}
+ {% for lang in entity.languages %}
+ <span style="color: black;">lang:{{ lang }}</span> &nbsp;
+ {% endfor %}
+ {% if entity.any_kbart %}
+ <span style="color: black;">[KBART]</span> &nbsp;
+ {% endif %}
+ <br>
+ #}
+ {% if entity.in_doaj %}
+ <span style="color: #c54e00;">[DOAJ]</span> &nbsp;
+ {% endif %}
+ {% if entity.in_road %}
+ <span style="color: #c54e00;">[ROAD]</span> &nbsp;
+ {% endif %}
+ {% if entity.is_oa and not (entity.in_doaj or entity.in_road) %}
+ <span style="color: #c54e00;">[open-access]</span> &nbsp;
{% endif %}
- {% if entity.container_type %}
- &nbsp;{{ entity.container_type }}
+ {% if entity.container_type and entity.container_type != "journal" %}
+ <b>[{{ entity.container_type }}]</b> &nbsp;
{% endif %}
{% if entity.publication_status and entity.publication_status != "active" %}
- &nbsp;{{ entity.publication_status }}
+ <span style="color: brown;">{{ entity.publication_status }}</span> &nbsp;
{% endif %}
</div>
{% endmacro %}