0

SO를 통해 검색 후, 난 내가 검색을 구현하는 SOLR을 사용하고, 자동 완성을 구현하고자, 사방이 코드 조각을 발견하고, SOLR JQuery와 자동 완성 URL이 소스

var cache = {}; 
    $("#textbox").autocomplete({ 
     source: function(request, response) { 
     if (request.term in cache) { 
     response($.map(cache[request.term].d, function(item) { 
     return { value: item.value, id: item.id } 
     })) 
     return; 
     } 
     $.ajax({ 
     url: "/Services/AutoCompleteService.asmx/GetEmployees", /* I use a web service */ 
     data: "{ 'term': '" + request.term + "' }", 
     dataType: "json", 
     type: "POST", 
     contentType: "application/json; charset=utf-8", 
     dataFilter: function(data) { return data; }, 
     success: function(data) { 
     cache[request.term] = data; 
     response($.map(data.d, function(item) { 
      return { 
      value: item.value, 
      id: item.id 
      } 
     })) 
     }, 
     error: HandleAjaxError // custom method 
     }); 
     }, 
     minLength: 3, 
     select: function(event, ui) { 
     if (ui.item) { 
     formatAutoComplete(ui.item); // custom method 
     } 
     } 
    }); 
Autocomplet

구현 TermsComponent 원수를 사용하고 싶었

내 질문에, URL 소스를 구성하는 방법, 다음 URL을해야합니다. http://localhost:8983/solr/terms?terms.fl=name&terms.prefix=at&wt=json&omitHeader=true 결과를 지금 에게 제공합니다. 이제 pls는 내 URL 소스가되어야한다고 말하고, 사용자 정의하려면 terms.lower = py & terms.lower.incl = false & 들여 쓰기와 같은 매개 변수들 = 사실 & wt = json 등, URL에서 또는 java 클래스의 코드를 더 잘 해독해야합니다. List terms = query (q, Integer.parseInt (limit));

private List<TermsResponse.Term> query(String q, int limit) { 
List<TermsResponse.Term> items = null; 
SolrQuery query = new SolrQuery(); 
query.addTermsField("spell"); 
query.setTerms(true); 
query.setTermsLimit(limit); 
query.setTermsLower(q); 
query.setTermsPrefix(q); 
query.setQueryType("/terms"); 
try { 
    QueryResponse qr = server.query(query); 
    TermsResponse resp = qr.getTermsResponse(); 
    items = resp.getTerms("name"); 
} catch (SolrServerException e) { 
    items = null; 
} 
return items; 

은} 도와주세요, JQuery와의 음 너무 좋지 않다, 그래서 난 그냥 여기에 URL을 수정하거나 몇 가지 더를 사용자 정의해야 할 필요 와트를 들어, 한 가지 더 확인하고 싶어 things

답변

1

이 클라이언트 측을 매개 변수화해야 할 가능성은별로 없기 때문에 이러한 매개 변수를 서버 측에서 설정하십시오. 일반적으로 코드를 URL에 하드 코딩하지 않고 코드로 설정하면 더 나은 결과를 얻을 수 있습니다. 또한 set parameters in the solr config 수 있습니다 기억하십시오.

마지막으로 program by coincidence을 사용하지 마십시오. 사용중인 jQuery 스 니펫을 이해하십시오. 그렇지 않으면 조만간 문제가 발생할 것입니다.

+0

감사합니다 maurico,하지만 URL 소스와 함께 나를 도울 수있는 pls ..이 사용 ..하지만 can not는 resul을 얻을 .. u는 wats 잘못 말할 수 있습니다. url : "http : // localhost : 8983/solr/termsterms .fl = 이름 & wt = json & omitHeader = true & terms.prefix = "+ this.value – grandmaster