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