Excerpts from jeremy's message of 2015-12-14 11:09:48 -0700:
> Hi all,
> I'm working with FTS5 and I'd like to guarantee that a particular document is
> indexed only once. I have what I consider to be a document id, but it is not
> integer value its a hexadecimal string, think GUID/md5/sha1. Since the fts5
> rowid column is an integer, it appears I'll need to create a mapping from my
> document id to an fts5 rowid.
Don't need a mapping use your key and ensure your key is unique.
> I'm thinking the best method for me to resolve this would to just use an
> external content table with triggers to update FTS5 table. Pretty much exactly
> like https://sqlite.org/fts5.html#section_4_4_2 and use triggers to keep the
> FTS5 table in sync with the external content table.
Using that solution (the best I think) just combine:
-- The external table
CREATE TABLE tbl (key TEXT UNIQUE, content, id INTEGER PRIMARY KEY);
-- The virtual table
CREATE VIRTUAL TABLE fts USING fts5(key, content, content=tbl,
> If I'm going to have to use an external table to create a rowid for the
> fts5 table, I might as well use use the external content table.
> Any additional thoughts on this from the more knowledgeable?
> Jeremy Hinegarnder
> Copious Free Time, LLC
Marco Arthur @ (M)arco Creatives