正規表現とテキスト検索($ text)はどちらも、テキストを非常に効率的に検索するのに役立ちます。どちらにも長所と短所がありますが、明確な違いが2つあります
正規表現
-
^
を使用して文字列の先頭で検索しない限り、正規表現はインデックスを利用しません。 オペレーター。 -
正規表現を使用すると、テキストの一部を検索できます。したがって、。*および他の多くのパターン。
-
正規表現は、ストップワードまたはノイズワードをサポートしていません。
$ text
mongodbのテキストインデックスは非常に高速であり、優先する必要があります。ただし、MongoDBはフル機能のテキストインデックスを実装していません。主な欠点の1つは、部分一致をサポートしていないことです。例えば猫を検索する場合は、猫と猫のみが検索され、ボブキャットやキャタピラーは検索されません。
結論は、RDBMSのような機能を
like
のように実装しようとしている場合です。 演算子「$text」は役に立ちません(少なくともMongoDBの現在の実装では、将来的には変更される可能性があります)。