From 42c7c6454dc412f7e0d95ad93eaae20c61fe986b Mon Sep 17 00:00:00 2001 From: Thomas Baer <thomas.baer@slub-dresden.de> Date: Wed, 18 Sep 2024 12:04:49 +0200 Subject: [PATCH] Nur q und so --- extract_logs.py | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/extract_logs.py b/extract_logs.py index a61b7c2..16e8b06 100644 --- a/extract_logs.py +++ b/extract_logs.py @@ -10,7 +10,7 @@ from tqdm import tqdm def clean_query(query_string): """ - Bereinigt einen Query-String, indem bestimmte Parameter entfernt werden. + Bereinigt einen Query-String, indem nur die Parameter 'q', 'fq' und 'hl' behalten werden. Args: query_string (str): Der zu bereinigende Query-String. @@ -19,15 +19,16 @@ def clean_query(query_string): str: Der bereinigte Query-String. """ params = parse_qs(query_string) - # Entferne spezifische Parameter, die für den Lasttest nicht relevant sind - for param in ["shard", "shard.url", "isShard", "NOW", "wt"]: - params.pop(param, None) - return urlencode(params, doseq=True) + cleaned_params = {} + for param in ["q", "fq", "hl"]: + if param in params: + cleaned_params[param] = params[param] + return urlencode(cleaned_params, doseq=True) def process_file(filename): """ - Verarbeitet eine einzelne Log-Datei und extrahiert die Solr-Abfrage-URLs. + Verarbeitet eine einzelne Log-Datei und extrahiert die bereinigten Solr-Abfrage-URLs. Args: filename (str): Der Pfad zur zu verarbeitenden Log-Datei. @@ -43,13 +44,16 @@ def process_file(filename): if params_match: query_string = params_match.group(1) clean_query_string = clean_query(query_string) - urls.append(f"/select?{clean_query_string}") + if ( + clean_query_string + ): # Nur hinzufügen, wenn es relevante Parameter gibt + urls.append(f"/select?{clean_query_string}") return pd.DataFrame(urls, columns=["url"]) def extract_urls_from_logs(): """ - Extrahiert URLs aus allen Solr-Log-Dateien im 'logs/' Verzeichnis und + Extrahiert bereinigte URLs aus allen Solr-Log-Dateien im 'logs/' Verzeichnis und speichert sie in einer Parquet-Datei mit Snappy-Kompression. Returns: @@ -99,4 +103,6 @@ def extract_urls_from_logs(): if __name__ == "__main__": # Führe die Extraktion aus und gib die Gesamtanzahl der extrahierten URLs aus total_urls = extract_urls_from_logs() - print(f"{total_urls} URLs wurden extrahiert und in das Parquet-File gespeichert.") + print( + f"{total_urls} bereinigte URLs wurden extrahiert und in das Parquet-File gespeichert." + ) -- GitLab