2017-07-04 6 views
0

これまでブログで検索を実装したいのですが、入力フォームに文字列を入力してリクエストを行う検索フォームを持つブログを作成しました。マングースで正規表現を作成し、ブログでモデルを検索する

ここで、私のブログの頭や体の文字列を検索する機能があります。

その場合はユーザーが「FOOバーが」私は「FOOバー」

を持っている私の結果を得る。しかし、私が欲しいのは各スペースのため、この機能の検索が単語を分離し、AND結果ということです。すなわち、「foo」というために「バー」の検索を検索し、「ハローFOOバー」、「バーfoo」を持っ ポストを得るために、結果を交差し、「バーハローfoo」という

function(searchQuery, callback){ 
    var query = { 
     $or:[ 
       { head: {$regex: searchQuery, $options: "i"} }, 
       { body: {$regex: searchQuery, $options: "i"} } 
      ] 
    }; 
    Post.find(query, {sort: { date: -1 }, page: i, limit: 5 }, callback); 
} 

取得要求のURLがあります

localhost:5000/blog/?searchQuery=FOO+BAR 

これを行うには他の方法がある場合は、私は提案に開放しています。

答えて

0

答えを見つけました! は私の頭と体TextIndexに https://docs.mongodb.com/manual/core/index-text/

と機能

function(searchQuery, callback){ 

    var queryString = '\"' + searchQuery.split(' ').join('\" \"') + '\"'; 
    var query = { $text: { $search: queryString } }; 
    Post.find(query, {sort: { date: -1 }, page: i, limit: 5 }, callback); 

} 

正規表現の必要はありません内部の使用このコードを作成するために必要な!

関連する問題