Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

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.
*/