Upload app.py
Browse files
app.py
CHANGED
|
@@ -470,27 +470,21 @@ class FulltextDatabases:
|
|
| 470 |
timings["snippet_fallback_sql"] = timings.get("snippet_fallback_sql", 0) + (time.perf_counter() - fallback_started) * 1000
|
| 471 |
for number, match_position, content_length, text in rows:
|
| 472 |
payload_started = time.perf_counter()
|
| 473 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 474 |
if timings is not None:
|
| 475 |
timings["snippet_payload"] = timings.get("snippet_payload", 0) + (time.perf_counter() - payload_started) * 1000
|
| 476 |
-
if not payload["highlights"]:
|
| 477 |
-
payload = build_snippet_payload(text or "", needle, exact=True)
|
| 478 |
-
extracted_start = max(int(match_position or 0) - 220, 1)
|
| 479 |
if payload["snippet"] and extracted_start > 1 and not payload["snippet"].startswith("..."):
|
| 480 |
payload["snippet"] = "..." + payload["snippet"]
|
| 481 |
if payload["snippet"] and extracted_start + len(text or "") <= int(content_length or 0) and not payload["snippet"].endswith("..."):
|
| 482 |
payload["snippet"] += "..."
|
| 483 |
-
if exact and not has_wildcard_query(query):
|
| 484 |
-
direct_started = time.perf_counter()
|
| 485 |
-
direct_payload = build_normalized_exact_snippet_payload(text or "", query)
|
| 486 |
-
if direct_payload["snippet"] and extracted_start > 1 and not direct_payload["snippet"].startswith("..."):
|
| 487 |
-
direct_payload["snippet"] = "..." + direct_payload["snippet"]
|
| 488 |
-
if direct_payload["snippet"] and extracted_start + len(text or "") <= int(content_length or 0) and not direct_payload["snippet"].endswith("..."):
|
| 489 |
-
direct_payload["snippet"] += "..."
|
| 490 |
-
if timings is not None:
|
| 491 |
-
timings["snippet_exact_payload_direct"] = timings.get("snippet_exact_payload_direct", 0) + (time.perf_counter() - direct_started) * 1000
|
| 492 |
-
if direct_payload != payload:
|
| 493 |
-
timings["snippet_exact_payload_mismatch"] = timings.get("snippet_exact_payload_mismatch", 0) + 1
|
| 494 |
snippets[doc_id_by_number[int(number)]] = payload
|
| 495 |
except sqlite3.OperationalError:
|
| 496 |
continue
|
|
@@ -1122,7 +1116,7 @@ def run_search(body: SearchRequest, sources_filter=None, timings=None):
|
|
| 1122 |
|
| 1123 |
def format_server_timing(timings: dict) -> str:
|
| 1124 |
values = [f'cache;desc="{timings.get("cache", "unknown")}";dur={timings.get("cache_lookup", 0):.2f}']
|
| 1125 |
-
for name in ("sqlite", "metadata", "filter", "rank", "sort", "summaries", "snippet_anchor_sql", "snippet_anchor_error", "snippet_fallback_sql", "snippet_payload", "
|
| 1126 |
if name in timings:
|
| 1127 |
values.append(f"{name};dur={timings[name]:.2f}")
|
| 1128 |
return ", ".join(values)
|
|
|
|
| 470 |
timings["snippet_fallback_sql"] = timings.get("snippet_fallback_sql", 0) + (time.perf_counter() - fallback_started) * 1000
|
| 471 |
for number, match_position, content_length, text in rows:
|
| 472 |
payload_started = time.perf_counter()
|
| 473 |
+
extracted_start = max(int(match_position or 0) - 220, 1)
|
| 474 |
+
if exact and not has_wildcard_query(query):
|
| 475 |
+
payload = build_normalized_exact_snippet_payload(text or "", query)
|
| 476 |
+
if not payload["highlights"]:
|
| 477 |
+
payload = build_snippet_payload(text or "", query, exact=True)
|
| 478 |
+
else:
|
| 479 |
+
payload = build_snippet_payload(text or "", query, exact=exact)
|
| 480 |
+
if not payload["highlights"]:
|
| 481 |
+
payload = build_snippet_payload(text or "", needle, exact=True)
|
| 482 |
if timings is not None:
|
| 483 |
timings["snippet_payload"] = timings.get("snippet_payload", 0) + (time.perf_counter() - payload_started) * 1000
|
|
|
|
|
|
|
|
|
|
| 484 |
if payload["snippet"] and extracted_start > 1 and not payload["snippet"].startswith("..."):
|
| 485 |
payload["snippet"] = "..." + payload["snippet"]
|
| 486 |
if payload["snippet"] and extracted_start + len(text or "") <= int(content_length or 0) and not payload["snippet"].endswith("..."):
|
| 487 |
payload["snippet"] += "..."
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 488 |
snippets[doc_id_by_number[int(number)]] = payload
|
| 489 |
except sqlite3.OperationalError:
|
| 490 |
continue
|
|
|
|
| 1116 |
|
| 1117 |
def format_server_timing(timings: dict) -> str:
|
| 1118 |
values = [f'cache;desc="{timings.get("cache", "unknown")}";dur={timings.get("cache_lookup", 0):.2f}']
|
| 1119 |
+
for name in ("sqlite", "metadata", "filter", "rank", "sort", "summaries", "snippet_anchor_sql", "snippet_anchor_error", "snippet_fallback_sql", "snippet_payload", "snippets", "decorate", "engine", "json"):
|
| 1120 |
if name in timings:
|
| 1121 |
values.append(f"{name};dur={timings[name]:.2f}")
|
| 1122 |
return ", ".join(values)
|