Hello,

from what I have read about FTS3, it stores the original data as well as the
index needed for fast full-text access. Therefore, in several posts here it
was recommended to use two tables joined one-to-one in case it's needed to
store both text data and some other, possibly numeric data. Let's use an
example:

Table1:
ID Int
Value1 Int
Value2 Int

Table2 (FTS3):
Text1
Text2

However, according to my tests, the join needed in case I want to get all
data in tables Table1 and Table2 takes some time, it looks like it's almost
twice as slow as having all the data in one table only.

So, another option is to 'denormalize' the schema above to:

Table12:
ID Int
Value1 Int
Value2 Int
Text1 Text
Text2 Text

but then I need another FTS3 table and so all values in Text1 and Text2
fields are actually duplicated in DB, right?

My question to SQLite experts is whether there is any solution to this
choice between speed and DB size. Preferrably I'd need to specify that just
some fields of an ordinary table participate in FTS3 index, but that
obviously isn't possible, at least not yet. Are there any plans for this?

Thanks,
Jiri

_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to