我可以使用jquery自动完成功能进行全文搜索吗?

时间:2009-03-26 21:28:04

标签: jquery autocomplete

我希望能够搜索全名列表。我见过的自动完成演示都是从头开始搜索的。这也不好,因为我也想要姓氏上的匹配。

如果它至少遵循单词边界,我可以在没有全文搜索的情况下生活。像这里的标签搜索那样排序。怎么办?

干杯

2 个答案:

答案 0 :(得分:0)

你可以。只需从执行实际搜索的服务器端功能中获取项目。例如SQL服务器。你应该考虑表现。大量行可能需要足够长的时间来进行“片状”自动完成。

答案 1 :(得分:0)

这是一个搜索名字和姓氏的代码段,即使您的搜索字词中有多个部分字词也是如此:

var arrayOfNames = [{first:"John", last:"Box"},{first:"Rachel", last:"Park"}
               ,{first:"Rachel", last:"Dark"},{first:"Rachel", last:"Luck"}];

$("#input").autocomplete({
    source: function( request, response ) {
        var names = [];
        var searchTerms = request.term.split(" ");;
        $.grep(arrayOfNames, function(person, i) {
            var matches = 0;

            $.each(searchTerms, function(i, term) {
                if(person.first.indexOf(term)>=0 || person.last.indexOf(term)>=0)
                    matches++;
            });

            if(matches == searchTerms.length)
                names.push({value:person.first+" "+person.last});
        });

        response(names);
    }
});

在此处查看此行动:http://jsfiddle.net/t29req1s/1/