인덱스 SQLite는 필드의 첫 번째 문자와 일치 : 문자열의 각 단어에 대한 article.body
에서가 효율적으로 내가 SQLite는 두 개의 테이블이
CREATE TABLE article (body TEXT)
CREATE TABLE article_word (
word TEXT,
article_rowid INTEGER,
FOREIGN KEY(article_rowid) REFERENCES article(rowid),
PRIMARY KEY(word, article_rowid)
)
프로그램을 저장 긴 문자열과, 그것은의 소문자 버전을 저장 단어와 함께 rowid
은 article_word
입니다.
단어에서 대소 문자를 구분하지 않는 첫 번째 문자로 기사를 검색하게하려면 baz
을 검색하면 foobar Bazquux spambacon
을 포함하는 기사가 생성됩니다.
테이블을 수정/추가하고 (필요한 경우) 최적의 일치를 쿼리 할 수 있습니까? article_word.word
에 PRIMARY KEY
인덱스의
SELECT a.rowid, a.body FROM article a, article_word w WHERE w.word LIKE "baz%" AND a.rowid = w.article_rowid
걸릴 이점을 않거나 순진하게도 모든 행을 검색합니까?
SQLite의 [전체 텍스트 검색] (http://sqlite.org/fts3.html)을 사용하지 않는 이유는 무엇입니까? –