Changeset View
Changeset View
Standalone View
Standalone View
swh/search/elasticsearch.py
Show All 18 Lines | |||||
from swh.search.interface import ( | from swh.search.interface import ( | ||||
SORT_BY_OPTIONS, | SORT_BY_OPTIONS, | ||||
MinimalOriginDict, | MinimalOriginDict, | ||||
OriginDict, | OriginDict, | ||||
PagedResult, | PagedResult, | ||||
) | ) | ||||
from swh.search.metrics import send_metric, timed | from swh.search.metrics import send_metric, timed | ||||
from swh.search.translator import Translator | from swh.search.translator import Translator | ||||
from swh.search.utils import escape, get_expansion, is_date_parsable | from swh.search.utils import escape, get_expansion, parse_and_format_date | ||||
logger = logging.getLogger(__name__) | logger = logging.getLogger(__name__) | ||||
INDEX_NAME_PARAM = "index" | INDEX_NAME_PARAM = "index" | ||||
READ_ALIAS_PARAM = "read_alias" | READ_ALIAS_PARAM = "read_alias" | ||||
WRITE_ALIAS_PARAM = "write_alias" | WRITE_ALIAS_PARAM = "write_alias" | ||||
ORIGIN_DEFAULT_CONFIG = { | ORIGIN_DEFAULT_CONFIG = { | ||||
Show All 38 Lines | def _sanitize_origin(origin): | ||||
if "intrinsic_metadata" in res: | if "intrinsic_metadata" in res: | ||||
intrinsic_metadata = res["intrinsic_metadata"] | intrinsic_metadata = res["intrinsic_metadata"] | ||||
for date_field in ["dateCreated", "dateModified", "datePublished"]: | for date_field in ["dateCreated", "dateModified", "datePublished"]: | ||||
if date_field in intrinsic_metadata: | if date_field in intrinsic_metadata: | ||||
date = intrinsic_metadata[date_field] | date = intrinsic_metadata[date_field] | ||||
# If date{Created,Modified,Published} value isn't parsable | # If date{Created,Modified,Published} value isn't parsable | ||||
# It gets rejected and isn't stored (unlike other fields) | # It gets rejected and isn't stored (unlike other fields) | ||||
if not is_date_parsable(date): | formatted_date = parse_and_format_date(date) | ||||
if formatted_date is None: | |||||
intrinsic_metadata.pop(date_field) | intrinsic_metadata.pop(date_field) | ||||
else: | |||||
intrinsic_metadata[date_field] = formatted_date | |||||
res["intrinsic_metadata"] = codemeta.expand(intrinsic_metadata) | res["intrinsic_metadata"] = codemeta.expand(intrinsic_metadata) | ||||
return res | return res | ||||
def token_encode(index_to_tokenize: Dict[bytes, Any]) -> str: | def token_encode(index_to_tokenize: Dict[bytes, Any]) -> str: | ||||
"""Tokenize as string an index page result from a search""" | """Tokenize as string an index page result from a search""" | ||||
▲ Show 20 Lines • Show All 458 Lines • Show Last 20 Lines |