紅しょうが
紅しょうが
https://github.com/yuba/misskey/pull/2/files
ノート検索をAND/OR/NOTできるようにするやつ、書きたかったパース処理とか最適化はだいたい全部盛り込めた
にんじん にんじんさん 検索だったら実際には「LIKE '%にんじんさん%'」しか発行しないし、
逆ににんじん OR にんじんさん 検索だったら「LIKE '%にんじん%'」しか発行しない。
そういう最適化を入れてる。
実際には、もっとカッコが入り組んでても冗長な条件は検知してはずせる。
あと、ド・モルガンの定理を使うことでNOTという階層そのものをなくしちゃった。LIKEとNOT LIKEだけをAND/ORで組み合わせるだけのSQLになる。