`
Java_大猫
  • 浏览: 169807 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

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

分享到:
评论
1 楼 panghaoyu 2017-03-17  
实现一个智能提示功能需要ajax、数据库、jsp/php、算法等很多知识,
如果数据量大,还需要特殊优化
一个小功能,花费太大精力很不划算
92find点靠木上的一个js插件实现了搜索框自动补全托管服务,
只要一行javascript代码就可以实现百度、淘宝搜索框提示的全部功能
比如:汉字拼音匹配、拼音前缀匹配、模糊搜索、智能容错,还可以自定义提示词汇及其排序权重
花五分钟我的网站就可以部署同百度、淘宝一样强大好用的输入提示功能
同时兼容IE、Firefox、Safari、Chrome、Opera各种浏览器
兼容ios、Android、Windows

相关推荐

Global site tag (gtag.js) - Google Analytics