Merge pull request #14215 from ChillarAnand/whoosh

fix: Use whoosh AsyncWriter to prevent write locks
This commit is contained in:
gavin 2021-09-16 10:55:57 +05:30 committed by GitHub
commit 06c1d79bb0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

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)