テキストにtestという単語が含まれているすべての文書を検索しようとしています。以下はうまく動作します:mongoidで変数付きのLIKE /正規表現を使用する
@tweets = Tweet.any_of({ :text => /.*test.*/ })
しかし、私はユーザーが指定した文字列を検索できるようにしたいと考えています。
私が考えることができるすべてを試しましたが、誰でもこの仕事をするために何ができるのか知っています。
ありがとうございます。
テキストにtestという単語が含まれているすべての文書を検索しようとしています。以下はうまく動作します:mongoidで変数付きのLIKE /正規表現を使用する
@tweets = Tweet.any_of({ :text => /.*test.*/ })
しかし、私はユーザーが指定した文字列を検索できるようにしたいと考えています。
私が考えることができるすべてを試しましたが、誰でもこの仕事をするために何ができるのか知っています。
ありがとうございます。
searchterm = (params[:searchlogparams][:searchterm])
@tweets = Tweet.any_of({ :text => Regexp.new ("/.*"+searchterm+".*/") })
または
searchterm = (params[:searchlogparams][:searchterm])
@tweets = Tweet.any_of({ :text => /.*#{searchterm}.*/ })
私はそこにあるように検索したいのですがロケーションムンバイと私はムンバイ、マハラシュトラ、インドのような場所を通過しています。しかし、それは検索されていません..ここで私のクエリEvent.any_of(location:/.*mumbai maharashtra。*/is).entries。私はムンバイを渡してその仕事をしています。提案してください。 –
これは私のために働いた – fmquaglia
これを試してみてください
通常の文字列のような正規表現で文字列を混在させることはできません
Model.find(:all, :conditions => {:field => /regex/i})
@tweets = Tweet.any_of({ :text => Regexp.new ("/.*"+searchterm+".*/") })
は仕事ですが、何の結果
@tweets = Tweet.any_of({ :text => Regexp.new (".*"+searchterm+".*") })
はOKではないと
@tweets = Tweet.any_of({ :text => /.*#{searchterm}.*/ })
は仕事、ない結果
で発生している:実行して、私のために働きました私のモンゴイドバージョンは3.1.3で、ルビバージョンは1です.9.3
@tweets = Tweet.any_of({ :text => Regexp.new (".*"+searchterm+".*") })
大丈夫です、私はあなたが「i」が末尾に大文字と小文字が区別されずにその仕事をするためにそこに/.*test.*/i追加すべきだと思う
を発生しています。 –