0

(タイトル)どうしよう?

http://brian.io/lawnchair/plugins/のプラグイン「ドキュメント」を見たところ、 平等の検索を行うことがわかりましたが、 .indexOf() の何かが表示されません

使用例: 少なくとも「オバマ」というキーワードを含むすべての記事を記事のデータベースから検索したい。記事の本文フィールドに「オバマ」が含まれるすべての記事オブジェクトを表示したい。

各記事に関連付けられたキーワードがあれば、それも追加できますが、私の主な問題は、検索を行うことだけです。

4

1 に答える 1

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())
            });
        });
于 2012-10-06T22:00:24.740 に答える