4

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

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

1 回答 1

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 表中。

您需要的所有信息都在这里:)

于 2012-04-11T03:24:17.750 回答