2012-09-25 60 views
0

我該怎麼做(標題)?帶草坪椅的phonegap應用程序的搜索功能db

我看了插件「文檔」上http://brian.io/lawnchair/plugins/ 並與我可以看到做平等的搜索,但我沒有看到的東西.indexOf()

使用案例: 我想在包含關鍵字「obama」 的每篇文章中搜索我的文章數據庫,至少我希望在文章的正文字段中看到帶有「obama」的每篇文章對象。

如果有與每篇文章相關的關鍵字可以幫助我也可以添加,我的主要問題atm只是做搜索。

回答

0

我結束了使用正則表達式並迭代整個數據庫: 如果任何人有更好的主意,或更乾淨的代碼,請隨意貢獻。

var lawnchair = Lawnchair({name:'lawnchair'},function(e){ 
      console.log('storage open'); 
     }); 

$('#search').click(function(e) { 
      var search_term = $("#search_field").val(); 
      var search_type = $('#search_type').val(); 
      var re = new RegExp(search_term, "gi") 
      console.log("startings search for "+search_term); 
      console.log("startings search for "+re.toString()); 
      lawnchair.all(function(articles){ 
       $('#article_list').empty(); 
       console.log(articles.length); 
       var counter = 0; 
       for(var i = 0; i<articles.length;i++) 
       { 
        cur_a = articles[i].value; 
        if(cur_a["title"] != null){ 
         var thing_to_search = "string"; 
         if(search_type == "both"){ 
          thing_to_search = cur_a["title"]+" "+cur_a["body"]; 
         }else if(search_type == "title"){ 
          thing_to_search = cur_a["title"]; 
         }else if (search_type == "body"){ 
          thing_to_search = cur_a["body"]; 
         } 
         var matches = thing_to_search.match(re); 
         if (matches != null) 
         { 
          counter = counter + 1; 
          var lyo = make_article_layout(); 
          lyo.find("#title").text(cur_a["title"]); 
          //xrank is the kw density 
          //let title be 10x more important than body 
          var xrank = (1.0 * matches.length)/thing_to_search.length; 
          if(cur_a["title"] != null){ 
           var m2 = cur_a["title"].match(re); 
           if(m2 != null){ 
            xrank = (xrank * m2.length) 
           } 
          } 
          lyo.find("#match_count").text(matches.length.toString()); 
          lyo.find("#xrank").text(xrank.toString()); 
          console.log(cur_a["title"]); 
          //console.log(cur_a["body"]); 
          lyo.id = cur_a["_id"]; 
          //lyo.find("#body").text(cur_a["body"]); 
          lyo.find("#published_at").append(" "+cur_a["published_at"]); 
          lyo.find("#author").append(" "+cur_a["author"]); 
          lyo.find("#source").append(" paper_id:"+cur_a["paper_id"]+" | "+cur_a["url"]); 
         } 
        } 
       } 
       $('#status').text("Results Found:"+counter.toString()) 
      }); 
     }); 
相關問題