Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

SQLite3の全文検索機能"FTS"をつかってみる その3:NEAR節

SQLiteのFTSにおけるMATCHでは、NEARという構文があります。
コレを使うと、近くにこの言葉があるものだけマッチという、

実際のところ

たとえば、eb2(内容はその1とほぼ同様)にある"to"を含んだ文章を探すのは以下の通り。

SELECT docid,body FROM eb2 WHERE body MATCH 'to';
/*
1|All your base are belong to us.
36|The truck have started to move.
*/

ここで、
「前か後ろのどこにあるか忘れたけど近くにhaveがあるto」
とかいう妙ちくりんな条件で検索したくなったとします。
正規表現で出来なくも無いでしょうが、FTS4ならこんな風に書くことができます。

SELECT docid,body FROM eb2 WHERE body MATCH 'to NEAR have';
/*
36|The truck have started to move.
*/