fix: Use whoosh AsyncWriter to prevent write locks

This commit is contained in:
ChillarAnand 2021-09-15 16:42:11 +05:30
parent ea27dd001a
commit a298566d13

View file

@ -8,6 +8,8 @@ from whoosh.index import create_in, open_dir, EmptyIndexError
from whoosh.fields import TEXT, ID, Schema
from whoosh.qparser import MultifieldParser, FieldsPlugin, WildcardPlugin
from whoosh.query import Prefix
from whoosh.writing import AsyncWriter
class FullTextSearch:
""" Frappe Wrapper for Whoosh """
@ -75,7 +77,7 @@ class FullTextSearch:
ix = self.get_index()
with ix.searcher():
writer = ix.writer()
writer = AsyncWriter(ix)
writer.delete_by_term(self.id, document[self.id])
writer.add_document(**document)
writer.commit(optimize=True)
@ -135,4 +137,4 @@ class FullTextSearch:
return out
def get_index_path(index_name):
return frappe.get_site_path("indexes", index_name)
return frappe.get_site_path("indexes", index_name)