16.1 目的:全文検索を行う FAQ Webサイトなどで、キーワードで全文検索を行いたい。 要件 検索語との一致度の高い記事を上位に表示 語形変化対応( crash, crashed, crashed, crashing) スケールすること これをSQLで実現することは困難と伴う。これはそもそもSQL(とその背後にリレーショナル理論)の原則に、列の値のアトミック性があるためである。つまり、SQLは列の値全体での比較は得意だが、部分文字列の比較は非効率となる。 16.2 アンチパターン:パターンマッチング述語を使う SQLのパターンマッチング述語を使おう。 Like演算子 SELECT * FROM Bugs WHERE description LIKE '%crash%'; MySQLの正規表現述語 SELECT * FROM Bugs WHERE description REGEXP