Skip to content
Snippets Groups Projects
Commit 42c7c645 authored by Thomas Bär's avatar Thomas Bär
Browse files

Nur q und so

parent 89ad769b
No related branches found
No related tags found
No related merge requests found
...@@ -10,7 +10,7 @@ from tqdm import tqdm ...@@ -10,7 +10,7 @@ from tqdm import tqdm
def clean_query(query_string): 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: Args:
query_string (str): Der zu bereinigende Query-String. query_string (str): Der zu bereinigende Query-String.
...@@ -19,15 +19,16 @@ def clean_query(query_string): ...@@ -19,15 +19,16 @@ def clean_query(query_string):
str: Der bereinigte Query-String. str: Der bereinigte Query-String.
""" """
params = parse_qs(query_string) params = parse_qs(query_string)
# Entferne spezifische Parameter, die für den Lasttest nicht relevant sind cleaned_params = {}
for param in ["shard", "shard.url", "isShard", "NOW", "wt"]: for param in ["q", "fq", "hl"]:
params.pop(param, None) if param in params:
return urlencode(params, doseq=True) cleaned_params[param] = params[param]
return urlencode(cleaned_params, doseq=True)
def process_file(filename): 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: Args:
filename (str): Der Pfad zur zu verarbeitenden Log-Datei. filename (str): Der Pfad zur zu verarbeitenden Log-Datei.
...@@ -43,13 +44,16 @@ def process_file(filename): ...@@ -43,13 +44,16 @@ def process_file(filename):
if params_match: if params_match:
query_string = params_match.group(1) query_string = params_match.group(1)
clean_query_string = clean_query(query_string) 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"]) return pd.DataFrame(urls, columns=["url"])
def extract_urls_from_logs(): 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. speichert sie in einer Parquet-Datei mit Snappy-Kompression.
Returns: Returns:
...@@ -99,4 +103,6 @@ def extract_urls_from_logs(): ...@@ -99,4 +103,6 @@ def extract_urls_from_logs():
if __name__ == "__main__": if __name__ == "__main__":
# Führe die Extraktion aus und gib die Gesamtanzahl der extrahierten URLs aus # Führe die Extraktion aus und gib die Gesamtanzahl der extrahierten URLs aus
total_urls = extract_urls_from_logs() 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."
)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment