2013-05-03 2 views
0

jQuery-ui 및 Solr을 사용하여 자동 완성으로 깔끔한 검색 상자를 만듭니다. 쿼리가 제대로 작동하지만 결과가 실제로 내 검색 상자에 표시되지 않습니다. 다음은 내가 사용하고있는 코드입니다.Solached로 캐시 된 자동 완성

var cache = {}; 
$("#Keyword").autocomplete({ 
    minLength: 3, 
    source: function(request, response) { 
     var term = request.term; 
     if(term in cache) { 
      response(cache[term]); 
      return; 
     } 
     $.getJSON("http://127.0.0.1:8080/solr/terms/?terms=true&terms.fl=ctnt_val&wt=json&indent=on&terms.prefix=" + $("#Keyword").val(), 
       request, 
       function(data, status, xhr) { 
        cache[term] = data; 
        response(data); 
     }); 
    } 
}); 

따라서 가장 좋은 추측은 반환 값을 올바르게 처리하지 못한다는 것입니다. 검색 상자 아래에 제대로 표시하려면 어떻게해야합니까?

답변

0

반환 함수에서 무엇이 잘못되었는지 확인할 수있었습니다. 결과를 통해 제대로 루핑되지 않았습니다. 가장 좋은 방법은지도 함수를 사용하여 반복하는 것입니다.

$("#Keyword").autocomplete({ 
    minLength: 3, 
    source: function(request, response) { 
     $query = "http://127.0.0.1:8080/solr/terms/?jsoncallback=?&terms=true&terms.prefix=" + $("#Keyword").val(); 
     $.getJSON($query, 
      request, 
      function(data) { 
       response($.map(data.terms.ctnt_val, function(item) { 
        return item; 
       })); 
      } 
     ); 
    } 
});