繁体   English   中英

Solr Jquery AutoComplete网址来源

[英]Solr Jquery AutoComplete Url Source

在浏览了SO之后,我到处都找到了这段代码,甚至我想实现AutoComplete,我正在使用Solr来实现搜索,并且想使用termsComponent来实现Autocomplet

    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
       }
      }
     });

现在我的问题是,如何配置url源,应该使用以下URL http:// localhost:8983 / solr / terms?terms.fl = name&terms.prefix = at&wt = json&omitHeader = true,这给了我完美的结果,现在请告诉我wat应该是我的网址来源,如果我想自定义,请添加更多参数,例如term.lower = py&terms.lower.incl = false&indent = true&wt = json等,我最好将其编码在url或java类中像列表项=查询(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或自定义更多内容

您不太可能需要将此客户端参数化,因此请在服务器端设置这些参数。 用代码设置它们而不是在URL中对其进行硬编码通常更好,这揭示了其意图。 还要记住,您可以在solr config中设置参数

最后,不要巧合编程 了解您使用的jQuery代码段,否则迟早会遇到问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM