Feature: Replace Whoosh with tantivy search backend (#12471)

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Antoine Mérino <3023499+Merinorus@users.noreply.github.com>
This commit is contained in:
authored and GitHub committed 2026-04-02 12:38:22 -07:00
1 parent e01a762e81
commit aed9abe48c
52 files changed
+4050 -1708

No files matched your search

+5 -14
View File
@@ -36,7 +36,6 @@ from rest_framework.permissions import IsAuthenticated
from rest_framework.response import Response
from rest_framework.viewsets import ModelViewSet
from documents.index import DelayedQuery
from documents.permissions import PaperlessObjectPermissions
from documents.tasks import llmindex_index
from paperless.filters import GroupFilterSet
@@ -83,20 +82,12 @@ class StandardPagination(PageNumberPagination):
)
def get_all_result_ids(self):
from documents.search import TantivyRelevanceList
query = self.page.paginator.object_list
if isinstance(query, DelayedQuery):
try:
ids = [
query.searcher.ixreader.stored_fields(
doc_num,
)["id"]
for doc_num in query.saved_results.get(0).results.docs()
]
except Exception:
pass
else:
ids = self.page.paginator.object_list.values_list("pk", flat=True)
return ids
if isinstance(query, TantivyRelevanceList):
return [h["id"] for h in query._hits]
return self.page.paginator.object_list.values_list("pk", flat=True)
def get_paginated_response_schema(self, schema):
response_schema = super().get_paginated_response_schema(schema)