Esempio n. 1
0
 def search(self, query, highlight_start='>', highlight_end='<', snippet_size=4):
     snippet_size=max(1, min(snippet_size, 64))
     stmt = (
         f'SELECT snippet(fts_table, 0, "{highlight_start}", "{highlight_end}", "…", {snippet_size})'
         ' FROM fts_table WHERE fts_table MATCH ? ORDER BY RANK'
     )
     return list(self.execute(stmt, (unicode_normalize(query),)))
Esempio n. 2
0
def tokenize(text, flags=None, remove_diacritics=True):
    from calibre_extensions.sqlite_extension import tokenize, FTS5_TOKENIZE_DOCUMENT
    if flags is None:
        flags = FTS5_TOKENIZE_DOCUMENT
    return tokenize(unicode_normalize(text), remove_diacritics, flags)
Esempio n. 3
0
 def insert_text(self, text):
     self.execute('INSERT INTO fts_table(t) VALUES (?)', (unicode_normalize(text),))