SQLite全文搜索索引

时间:2011-12-15 13:04:55

标签: sqlite fts3

我目前有诊断表。我想使用FTS搜索代码和描述字段。据我所知,FTS表不支持索引,我需要能够非常快速地通过诊断ID查找诊断。我是否必须创建第二个虚拟表,其中所有数据都是重复的,只是为了进行全文搜索,或者我错过了一个我不需要复制所有诊断代码和描述的解决方案?

CREATE TABLE Diagnosis (  
    diagnosisID     INTEGER PRIMARY KEY NOT NULL,  
    code            TEXT,  
    collect         INTEGER NOT NULL,  
    description     TEXT  
);

1 个答案:

答案 0 :(得分:5)

原来FTS表有一个隐藏的rowid字段,您可以在输入数据时填充该字段:

sqlite> create virtual table test1 using fts3;
sqlite> insert into test1 values ("This is a document!");
sqlite> insert into test1(docid,content) values (5,"this is another document");
sqlite> select rowid,* from test1;
1|This is a document!
5|this is another document

您可以在标准表中创建一个整数字段,该字段通过rowid引用FTS表,并将您希望进行文本搜索的列移动到FTS表中。

您需要的所有信息here:)