博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Solr6 Suggest(智能提示)
阅读量:6705 次
发布时间:2019-06-25

本文共 2462 字,大约阅读时间需要 8 分钟。

  1、介绍

    Solr从1.4开始便提供了检查建议,检索建议目前是各大搜索的标配应用,主要作用是避免用户输入错误的搜索词,同时将用户引导到相应的关键词搜索上。通常,我们将其称为搜索联想。

  其效果如图所示。在Solr中,实现该功能的模块叫做suggest。

    

  2、配置

    配置manage-schema

 

  配置solrconfig.xml

text_spell
suggest
org.apache.solr.spelling.suggest.Suggester
org.apache.solr.spelling.suggest.tst.TSTLookup
suggestion
0.0001
spellchecker
freq
true
true
suggest
true
false
10
true
suggest

 

  3、重启solr,索引数据

     

  4、效果预览

    

 

  5、java代码查询

private static void getSuggest(String message) throws SolrServerException, IOException{        SolrQuery params = new SolrQuery();        params.set("qt", "/suggest");//        params.setQuery("中国");        params.setQuery(message);        QueryResponse response = null;        response = solr.query(params);        String suggest = response.toString();        suggest = suggest.replace("=",":");        System.out.println(suggest);        JSONObject obj = new JSONObject(suggest);        Stack
stObj = new Stack
(); stObj.push(obj); Map
resultMap =new HashMap
(); JsonToMap(stObj,resultMap); if(resultMap.containsKey("suggestion")){ System.out.println("suggestion:"+resultMap.get("suggestion")); } } /** * @Author:sks * @Description:把json对象数据存储在map以键值对的形式存储,只存储叶节点 * @Date: */ private static void JsonToMap(Stack
stObj,Map
resultMap) throws SolrServerException, IOException{ if(stObj == null && stObj.pop() == null){ return ; } JSONObject json = stObj.pop(); Iterator it = json.keys(); while(it.hasNext()){ String key = (String) it.next(); //得到value的值 Object value = json.get(key); //System.out.println(value); if(value instanceof JSONObject) { stObj.push((JSONObject)value); //递归遍历 JsonToMap(stObj,resultMap); } else { resultMap.put(key, value); } } }

 

转载地址:http://ueflo.baihongyu.com/

你可能感兴趣的文章
Exchange/Office365 自动处理脚本:前言
查看>>
工作记——王文君离职感触
查看>>
sath89/oracle-xe-11g
查看>>
线性回归理解(附纯python实现)
查看>>
android点击手机返回键触发事件
查看>>
获取html元素当前的背景颜色
查看>>
根据表达式计算算术结果
查看>>
UINavigationController+UIScrollView内容视图全屏显示的方法
查看>>
iOS电池的监听
查看>>
人生九度
查看>>
我的友情链接
查看>>
win10一键卸载所有自带应用
查看>>
.P7B 证书转换为 .PFX
查看>>
pom文件配置贴一份出来供需要者学习
查看>>
更新adt-bundle-windows-20131030
查看>>
浅谈RAID和LVM
查看>>
安装Discuz论坛
查看>>
Vue.js如何写一个简单的原生js模块,浏览器中的表现如何?
查看>>
Kali Linux联网问题
查看>>
Protocol Buffers介绍
查看>>