Solr55实现拼音和汉字前缀的自动补全功能.docx

上传人:牧羊曲112 文档编号:3166047 上传时间:2023-03-11 格式:DOCX 页数:9 大小:39.12KB
返回 下载 相关 举报
Solr55实现拼音和汉字前缀的自动补全功能.docx_第1页
第1页 / 共9页
Solr55实现拼音和汉字前缀的自动补全功能.docx_第2页
第2页 / 共9页
Solr55实现拼音和汉字前缀的自动补全功能.docx_第3页
第3页 / 共9页
Solr55实现拼音和汉字前缀的自动补全功能.docx_第4页
第4页 / 共9页
Solr55实现拼音和汉字前缀的自动补全功能.docx_第5页
第5页 / 共9页
亲,该文档总共9页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《Solr55实现拼音和汉字前缀的自动补全功能.docx》由会员分享,可在线阅读,更多相关《Solr55实现拼音和汉字前缀的自动补全功能.docx(9页珍藏版)》请在三一办公上搜索。

1、Solr55实现拼音和汉字前缀的自动补全功能Solr5.5实现拼音和汉字前缀的自动补全功能 目录 Solr5.5实现拼音和汉字前缀的自动补全功能. 1 1. 概述 . 1 2自动补全. 2 2.1 调整表结构,增加拼音列和拼音缩写列 . 2 2.2 修改data-config.xml. 2 2.3 修改schema.xml . 3 2.4 实验 . 4 2.4.1 拼音前缀补齐汉字 . 4 2.4.2 查询包含汉字前缀的完整词条 . 7 2.5 SolrJ代码范例 . 7 2.5.1 函数代码 . 7 2.5.2 全拼前缀自动补全 . 8 2.5.3 汉字前缀自动补全 . 9 2.5.4 简拼

2、前缀自动补全 . 9 1. 概述 1.1 汉字前缀自动补全 在搜索框中输入“海底”,搜索框下面会以海底为前缀,展示“海底捞”、“海底捞火锅”、“海底世界”等等搜索词;输入“万达”,会提示“万达影城”、“万达广场”、“万达百货”等搜索词。 1.2拼音前缀自动补全 由于中文的特点,如果搜索自动提示可以支持拼音的话会给用户带来更大的方便,免得切换输入法。比如,输入“haidi”提示的关键字和输入“海底”提示的一样,输入“wanda”与输入“万达”提示的关键字一样。 2自动补全 2.1 调整表结构,增加拼音列和拼音缩写列 detail列存放检索的汉字内容; pinyin列存放detail列中汉字的拼音

3、内容; abbre列存放detail列中汉字的拼音的仅留声母的简写内容; 范例:solrtest3表 范例:“张三”的拼音是“zhangsan”,拼音简写是“zhs” 范例:solrtest1表 2.2 修改data-config.xml 2.3 修改schema.xml 2.4 实验 2.4.1 拼音前缀补齐汉字 2.4.1.1 实验需求 数据库中存在如下三条记录“重庆火锅”、“重庆小天鹅”和“重庆烤鱼”。现在检索“重庆”的拼音“chongqing”,希望返回以上三条记录,如下图: 2.4.1.2 直接查询拼音前缀无结果 2.4.1.3 借助solr suggest根据前缀查询完整拼音,但是

4、无法根据拼音前缀返回汉字记录 截止此步骤,实现如下拼音模式的补齐提示功能,但没有实现 2.4.1.4 直接在拼音列中前缀搜索汉字词条 页面实现的效果: 2.4.2 查询包含汉字前缀的完整词条 2.5 SolrJ代码范例 2.5.1 函数代码 /* * 为汉字前缀、或拼音前缀、或简拼前缀补齐完整的旅游词条, 范例:输入北京返回北京海洋 * param prefixWord 前缀词 * param pageSize 返回记录数 * return查询结果,Map类型 */ / 定义返回结果 Map result = new HashMap; /* * 自动补全时需要查询特定字段内容, * 规则:前缀

5、为拼音时,把beijin转为suggestion:*beijin* * 前缀是汉字时,把北京转为suggestion:*北京*,原因是绕过中文分词器切馆,北京欢乐谷,输入beijin返回北京海洋馆,北京欢乐谷, public Map autoComplete(String prefixParam, int pageSize) 分汉字的环节。 */ if (this.isContainChinese(prefixParam) = true) try return result; result.put(total, rowsParam); / 指定搜索结果排序方式 String sortParam

6、 = level asc; String returnFieldParam = detail; Map searchList = this.searchByPOJOs(prefixParam, 0, result.put(time, searchList.get(time); / 结果字符串整理 List list = (List) searchList.get(rows); List wordList = new ArrayList; for (SolrItem item : list) wordList.add(item.getTitle); prefixParam = suggestio

7、n:* + prefixParam + *; prefixParam = suggestion:* + prefixParam + *; else pageSize, sortParam, null, returnFieldParam); result.put(rows, wordList); result.put(tag, 1); result.put(tag, 0); result.put(msg, 检索失败,原因: + e.getMessage); catch (Exception e) 2.5.2 全拼前缀自动补全 为”北京”的全拼”beijing”提供的补全选项如下图: 2.5.3汉字前缀自动补全 为”北京”提供的补全选项如下图: 2.5.4简拼前缀自动补全 为”北京”的简拼”bj”提供的补全选项如下图:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号