2012-09-25 2 views
0

어떻게해야합니까 (제목)?잔디 냅 db와 phonegap 앱 검색 기능

내가 http://brian.io/lawnchair/plugins/ 에 플러그인 "문서"검토 한 그와 나는 평등에 대한 검색을 수행 볼 수 있었다,하지만 난 .indexOf()

사용 사례에 대한 무언가를보고 해달라고 : 내가 원하는 키워드 "obama" 을 포함하는 모든 기사에 대해 기사의 내 DB를 검색하려면 최소한 기사의 본문 필드에 "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()) 
      }); 
     });