Вот фрагмент, который ищет как имя, так и фамилию, даже если в вашем поисковом запросе есть несколько неполных слов:
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/