0

「Google-eqsue」形式の検索文字列を、Mongoデータベースの検索に使用できるものに変換できるようにしたいと思います(ここでは正規表現が良いアイデアだと思いますが、他のアイデアも受け入れています)。Google風のクエリの意味:

"Search for" +this -"but not this"

理想的には、Google風のクエリを受け取り、MongoDB内のドキュメントのテキストに対して単一の高速クエリを実行できるものを返すJavascriptアルゴリズムを探しています。これをRegExpに変換するのが最善だと私が思った理由は、正規表現がこれらの目標に適合しているためです(編集済み)。

4

1 に答える 1

1

mongo の新しいテキスト検索機能は試しましたか?

リリースノートより

フレーズ (つまり、エスケープされた引用符で囲まれた用語) の場合、検索は検索文字列内の他の用語との AND を実行します。たとえば、「\"twinkle twinkle\" little star」を検索すると、「twinkle twinkle」および (「little」または「star」) が検索されます。

bake または coffee という単語を含み、cake という単語を含まないドキュメントを検索します。

db.collection.runCommand( "text", { search: "bake coffee -cake" } )

- を用語の接頭辞として使用して、検索文字列で否定を指定します。クエリは、コンテンツ フィールドにすべて大文字と小文字を区別せずに、bake または coffee のいずれかを含み、cake を含まないドキュメントを返します。

于 2013-01-26T09:01:52.967 に答える