Ver código fonte

fix: Use whoosh AsyncWriter to prevent write locks

version-14
ChillarAnand 3 anos atrás
pai
commit
a298566d13
1 arquivos alterados com 4 adições e 2 exclusões
  1. +4
    -2
      frappe/search/full_text_search.py

+ 4
- 2
frappe/search/full_text_search.py Ver arquivo

@@ -8,6 +8,8 @@ from whoosh.index import create_in, open_dir, EmptyIndexError
from whoosh.fields import TEXT, ID, Schema from whoosh.fields import TEXT, ID, Schema
from whoosh.qparser import MultifieldParser, FieldsPlugin, WildcardPlugin from whoosh.qparser import MultifieldParser, FieldsPlugin, WildcardPlugin
from whoosh.query import Prefix from whoosh.query import Prefix
from whoosh.writing import AsyncWriter



class FullTextSearch: class FullTextSearch:
""" Frappe Wrapper for Whoosh """ """ Frappe Wrapper for Whoosh """
@@ -75,7 +77,7 @@ class FullTextSearch:
ix = self.get_index() ix = self.get_index()


with ix.searcher(): with ix.searcher():
writer = ix.writer()
writer = AsyncWriter(ix)
writer.delete_by_term(self.id, document[self.id]) writer.delete_by_term(self.id, document[self.id])
writer.add_document(**document) writer.add_document(**document)
writer.commit(optimize=True) writer.commit(optimize=True)
@@ -135,4 +137,4 @@ class FullTextSearch:
return out return out


def get_index_path(index_name): def get_index_path(index_name):
return frappe.get_site_path("indexes", index_name)
return frappe.get_site_path("indexes", index_name)

Carregando…
Cancelar
Salvar