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(",").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().getClass(),
Thread.currentThread().getStackTrace().getMethodName(), e.getMessage());
}
页:
[1]