Browse Source

Merge pull request #14215 from ChillarAnand/whoosh

fix: Use whoosh AsyncWriter to prevent write locks
version-14
gavin 3 years ago
committed by GitHub
parent
commit
06c1d79bb0
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 4 additions and 2 deletions
  1. +4
    -2
      frappe/search/full_text_search.py

+ 4
- 2
frappe/search/full_text_search.py 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)

Loading…
Cancel
Save