vomebook commited on
Commit
6f58d7d
·
1 Parent(s): 1162f4c

Upload app.py

Browse files
Files changed (1) hide show
  1. app.py +10 -2
app.py CHANGED
@@ -216,6 +216,9 @@ def apply_filters(indices: list[int], sources_filter=None, folders=None, min_siz
216
  result.append(idx)
217
  return result
218
 
 
 
 
219
  def trim_record(rec: dict) -> dict:
220
  return {
221
  "doc_id": rec["doc_id"],
@@ -263,6 +266,10 @@ def metadata_matches(q: str, exact: bool, search_paths: bool) -> set[int]:
263
 
264
  def search(q="", sources_filter=None, folders=None, min_size=None, max_size=None, page=1, page_size=100, sort="relevance", exact=False, search_paths=True):
265
  q = q.strip()
 
 
 
 
266
  if not q:
267
  indices = list(range(len(records)))
268
  filtered = apply_filters(indices, sources_filter, folders, min_size, max_size)
@@ -290,8 +297,9 @@ def search(q="", sources_filter=None, folders=None, min_size=None, max_size=None
290
  elif sort == "size":
291
  filtered.sort(key=lambda idx: (-records[idx].get("size", 0), records[idx]["display_rel_path"].lower()))
292
  total = len(filtered)
293
- start = (page - 1) * page_size
294
- result_items = add_summaries([trim_record(records[idx]) for idx in filtered[start:start + page_size]])
 
295
  return {"results": result_items, "total": total, "page": page, "page_size": page_size, "did_you_mean": None}
296
 
297
  def fulltext_search(q="", sources_filter=None, folders=None, min_size=None, max_size=None, page=1, page_size=100, sort="relevance", exact=False, search_paths=True):
 
216
  result.append(idx)
217
  return result
218
 
219
+ def has_filters(sources_filter=None, folders=None, min_size=None, max_size=None) -> bool:
220
+ return bool(sources_filter or folders or min_size is not None or max_size is not None)
221
+
222
  def trim_record(rec: dict) -> dict:
223
  return {
224
  "doc_id": rec["doc_id"],
 
266
 
267
  def search(q="", sources_filter=None, folders=None, min_size=None, max_size=None, page=1, page_size=100, sort="relevance", exact=False, search_paths=True):
268
  q = q.strip()
269
+ start = (page - 1) * page_size
270
+ if not q and sort == "relevance" and not has_filters(sources_filter, folders, min_size, max_size):
271
+ result_items = [trim_record(rec) for rec in records[start:start + page_size]]
272
+ return {"results": result_items, "total": len(records), "page": page, "page_size": page_size, "did_you_mean": None}
273
  if not q:
274
  indices = list(range(len(records)))
275
  filtered = apply_filters(indices, sources_filter, folders, min_size, max_size)
 
297
  elif sort == "size":
298
  filtered.sort(key=lambda idx: (-records[idx].get("size", 0), records[idx]["display_rel_path"].lower()))
299
  total = len(filtered)
300
+ result_items = [trim_record(records[idx]) for idx in filtered[start:start + page_size]]
301
+ if q:
302
+ result_items = add_summaries(result_items)
303
  return {"results": result_items, "total": total, "page": page, "page_size": page_size, "did_you_mean": None}
304
 
305
  def fulltext_search(q="", sources_filter=None, folders=None, min_size=None, max_size=None, page=1, page_size=100, sort="relevance", exact=False, search_paths=True):