Можно ли выполнять полнотекстовый поиск с помощью автозаполнения jquery? - PullRequest
0 голосов
/ 27 марта 2009

Я хочу иметь возможность искать список полных имен. Демонстрации автозаполнения, которые я видел, все искали с самого начала. Ничего страшного, потому что я тоже хочу совпадения по фамилии.

Я могу жить без полнотекстового поиска, если он хотя бы соответствует границам слов. Сорта, как тег поиска здесь. Как это сделано?

Приветствия

Ответы [ 2 ]

0 голосов
/ 10 декабря 2014

Вот фрагмент, который ищет как имя, так и фамилию, даже если в вашем поисковом запросе есть несколько неполных слов:

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/

0 голосов
/ 27 марта 2009

Можно. Просто возьмите элементы из серверной функции, которая выполняет фактический поиск. Например, SQL-сервер. Вы должны рассмотреть производительность. Большое количество строк может занять достаточно много времени, чтобы иметь «нестабильное» автозаполнение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...