私のアプリケーションは、フィールドにキーワードのリストがあるMongoデータベースのドキュメントと入力文字列を照合しようとしています。目標は、キーワードが文字列内に存在するかどうかを確認することです。MongoDBサブストリングに一致するクエリ
着信文字列:ここ
は一例です"John Doe is from Florida and is a fan of American Express"
のMongoDBの文書のためのフィールドは、次のような値を持っています
in_words: "georgia,american express"
ので、データベースレコードはinwordsありまたはキーワードはカンマで区切られ、そのうちのいくつかは2単語以上です。
現在のところ、私のRoRアプリケーションは、ドキュメントをプルして、inwords上でsplit( '、')コマンドを発行するそれぞれのinwordを引き出し、それぞれをループし、文字列内に存在するかどうかを確認します。
処理を高速化するために、このタイプの検索を実際のデータベースクエリにプッシュする方法を実際に探したいと思っています。データベースのin_wordsを次のような配列に変更することができます:
in_words: ["georgia", "american express"]
しかし、私はまだこれをどのようにクエリするのか分かりませんか?
私の目標は、入力された文字列と一致する人物を、その人物のキーワード/キーワードのリストと入力文字列を比較することによって見つけることです。そして、このクエリーをデータベースレイヤー内ですべて実行します。ご提案
私はあなたがその質問を誤解していると信じています。長い文字列はクエリ文字列であり、OPはそれをDBに追加する必要は何も言わない... – drevicko