2011-12-15 49 views
5

Tôi hiện đang có một bảng chẩn đoán. Tôi muốn làm cho các trường mã và mô tả có thể tìm kiếm bằng FTS. Theo tôi hiểu nó mặc dù, bảng FTS không hỗ trợ chỉ mục và tôi cần để có thể tra cứu chẩn đoán bằng diagnosticID rất nhanh chóng. Tôi sẽ phải tạo một bảng ảo thứ hai với tất cả các dữ liệu trùng lặp chỉ để tìm kiếm văn bản đầy đủ hoặc tôi thiếu một giải pháp mà tôi không phải sao chép tất cả các mã chẩn đoán và mô tả của tôi?Chỉ mục tìm kiếm văn bản đầy đủ của SQLite

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

Bạn đã tìm thấy câu trả lời cho câu hỏi này chưa? – tamsler

+0

Không, tôi chỉ sao chép các trường trong cả hai bảng. – MobileGuy

Trả lời

5

Hóa ra một bảng FTS có một ẩn rowid lĩnh vực mà bạn có thể cư dữ liệu khi bạn đang bước vào:

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 

Bạn có thể tạo một trường số nguyên trong bảng tiêu chuẩn của bạn mà đề cập đến FTS bảng theo rowid, và di chuyển các cột bạn muốn làm cho văn bản có thể tìm kiếm được trong bảng FTS.

Tất cả thông tin bạn cần here :)

Các vấn đề liên quan