solr 下拉提示功能
SolrServer server = new HttpSolrServer(SearchUtils.SOLR_HTTP_SERVER_URL); SolrQuery params = new SolrQuery(); params.set("qt", "/suggest"); params.set("q", term); params.set("spellcheck", "on"); params.set("spellcheck.build", "true"); List<String> suggestedWordList = new ArrayList<String>(); List<String> suggestedList = new ArrayList<String>(); try { QueryResponse qResponse = server.query(params); SpellCheckResponse spellCheckResponse = qResponse.getSpellCheckResponse(); List<Suggestion> suggestionList = spellCheckResponse.getSuggestions(); for (Suggestion suggestion : suggestionList) { suggestedWordList = suggestion.getAlternatives(); } //处理输入拼音方式,不如zhoujielun 提示周杰伦 , //其实可以用pinyin4J处理,我为了简单 做demo 临时处理了下 for (String str : suggestedWordList) { if (str.indexOf(",") > SearchConstants.STATUS_ZERO) { suggestedList.add(str.split(",")[1].toString()); } else { break; } } if (suggestedList.size() > SearchConstants.STATUS_ZERO) { JsonUtils.objToJson(suggestedList, response); } else { JsonUtils.objToJson(suggestedWordList, response); } } catch (Exception e) { logger.error(Thread.currentThread().getStackTrace()[1].getClass(), Thread.currentThread().getStackTrace()[1].getMethodName(), e.getMessage()); }