2017-07-04 62 views
0

我想在我的博客中實現搜索到目前爲止我所做的是創建一個具有搜索形式的博客,該搜索形式將字符串作爲輸入並獲取請求。Mongoose創建一個正則表達式並在博客的模型中搜索

現在在那個請求中我有一個函數被調用來搜索我的博客頭部或正文中的字符串。

因此,如果用戶鍵入「富巴」我知道我的結果有「富巴」

但我想的是,每個空格分隔單詞和,結果這一功能的搜索。即搜索「富」,搜索「欄」和相交的結果獲得具有 帖「酒吧富」,「富招呼吧」,「酒吧你好富」

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); 

} 

不需要正則表達式的裏面!