mirror of
				https://github.com/paperless-ngx/paperless-ngx.git
				synced 2025-11-04 03:27:12 -05:00 
			
		
		
		
	moved some code
This commit is contained in:
		
							parent
							
								
									942fab7298
								
							
						
					
					
						commit
						7747e6512a
					
				@ -2,9 +2,11 @@ import logging
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
from django.db import models
 | 
					from django.db import models
 | 
				
			||||||
from django.dispatch import receiver
 | 
					from django.dispatch import receiver
 | 
				
			||||||
 | 
					from whoosh import highlight
 | 
				
			||||||
from whoosh.fields import Schema, TEXT, NUMERIC
 | 
					from whoosh.fields import Schema, TEXT, NUMERIC
 | 
				
			||||||
from whoosh.highlight import Formatter, get_text
 | 
					from whoosh.highlight import Formatter, get_text
 | 
				
			||||||
from whoosh.index import create_in, exists_in, open_dir
 | 
					from whoosh.index import create_in, exists_in, open_dir
 | 
				
			||||||
 | 
					from whoosh.qparser import MultifieldParser
 | 
				
			||||||
from whoosh.writing import AsyncWriter
 | 
					from whoosh.writing import AsyncWriter
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from documents.models import Document
 | 
					from documents.models import Document
 | 
				
			||||||
@ -97,6 +99,17 @@ def remove_document_from_index(document):
 | 
				
			|||||||
        remove_document(writer, document)
 | 
					        remove_document(writer, document)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def query_page(ix, query, page):
 | 
				
			||||||
 | 
					    with ix.searcher() as searcher:
 | 
				
			||||||
 | 
					        query_parser = MultifieldParser(["content", "title", "correspondent"],
 | 
				
			||||||
 | 
					                                        ix.schema).parse(query)
 | 
				
			||||||
 | 
					        result_page = searcher.search_page(query_parser, page)
 | 
				
			||||||
 | 
					        result_page.results.fragmenter = highlight.ContextFragmenter(
 | 
				
			||||||
 | 
					            surround=50)
 | 
				
			||||||
 | 
					        result_page.results.formatter = JsonFormatter()
 | 
				
			||||||
 | 
					        return result_page
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def autocomplete(ix, term, limit=10):
 | 
					def autocomplete(ix, term, limit=10):
 | 
				
			||||||
    with ix.reader() as reader:
 | 
					    with ix.reader() as reader:
 | 
				
			||||||
        terms = []
 | 
					        terms = []
 | 
				
			||||||
 | 
				
			|||||||
@ -6,9 +6,6 @@ from django_filters.rest_framework import DjangoFilterBackend
 | 
				
			|||||||
from rest_framework.decorators import action
 | 
					from rest_framework.decorators import action
 | 
				
			||||||
from rest_framework.response import Response
 | 
					from rest_framework.response import Response
 | 
				
			||||||
from rest_framework.views import APIView
 | 
					from rest_framework.views import APIView
 | 
				
			||||||
from whoosh import highlight
 | 
					 | 
				
			||||||
from whoosh.qparser import QueryParser
 | 
					 | 
				
			||||||
from whoosh.query import terms
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
from paperless.db import GnuPG
 | 
					from paperless.db import GnuPG
 | 
				
			||||||
from paperless.views import StandardPagination
 | 
					from paperless.views import StandardPagination
 | 
				
			||||||
@ -194,12 +191,7 @@ class SearchView(APIView):
 | 
				
			|||||||
            except (ValueError, TypeError):
 | 
					            except (ValueError, TypeError):
 | 
				
			||||||
                page = 1
 | 
					                page = 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            with self.ix.searcher() as searcher:
 | 
					            result_page = index.query_page(self.ix, query, page)
 | 
				
			||||||
                query_parser = QueryParser("content", self.ix.schema).parse(query)
 | 
					 | 
				
			||||||
                result_page = searcher.search_page(query_parser, page)
 | 
					 | 
				
			||||||
                result_page.results.fragmenter = highlight.ContextFragmenter(
 | 
					 | 
				
			||||||
                    surround=50)
 | 
					 | 
				
			||||||
                result_page.results.formatter = index.JsonFormatter()
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
            return Response(
 | 
					            return Response(
 | 
				
			||||||
                {'count': len(result_page),
 | 
					                {'count': len(result_page),
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user