1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > java 按拼音模糊搜索汉字_java 自动补全 java 搜索自动匹配 java 汉字拼音搜索

java 按拼音模糊搜索汉字_java 自动补全 java 搜索自动匹配 java 汉字拼音搜索

时间:2020-11-28 03:31:15

相关推荐

java 按拼音模糊搜索汉字_java 自动补全 java 搜索自动匹配 java 汉字拼音搜索

java 自动补全 java 搜索自动匹配 java 汉字拼音搜索

一、依赖jar包

org.ansj

ansj_seg

5.1.6

二、代码实现

1、SearcuUtils 实现具体搜索功能

import java.util.ArrayList;

import java.util.Collections;

import java.util.List;

import mons.collections4.CollectionUtils;

import mons.lang3.StringUtils;

import mons.lang.index.MemoryIndex;

import mons.lang.pinyin.Pinyin;

/**

* description: 使用 ansj_seg 实现简单的文字搜索

* @version v1.0

* @author w

* @date 2月29日下午9:00:42

**/

public class SearcuUtils {

// 构造方法私有化

private SearcuUtils INSTANSE = new SearcuUtils ();

/**|

* description: 实现简单文字搜索

* @param key 用于搜索的关键词

* @param wordList 待搜索的词库

* @return List

* @version v1.0

* @author w

* @date 2月29日 下午9:12:54

*/

@SuppressWarnings("unchecked")

public static List search(String key , List wordList){

MemoryIndex memoryIndex = new MemoryIndex();

if (StringUtils.isBlank(key) || CollectionUtils.isEmpty(wordList)) {

return Collections.EMPTY_LIST;

}

for (String word : wordList) {

// 汉字转为完整拼音,如:中国 -- zhongguo

String fullChar = StringUtils.join(Pinyin.pinyin(word), "");

// 汉字转为拼音缩写,如:中国 -- zg

String firstChar = StringUtils.join(Pinyin.firstChar(word), "");

memoryIndex.addItem(word, word, fullChar, firstChar);

}

return memoryIndex.suggest(key);

}

/**

* description: 加载待搜索的词库 --- 临时用

* @param path

* @return List

* @version v1.0

* @author w

* @date 2月29日 下午9:15:51

*/

public static List loadWordList() {

List list = new ArrayList<>();

list.add("中国");

list.add("中华人民共和国");

list.add("中国人民");

list.add("我爱中国");

return list;

}

}

2、SearchController 搜索匹配 Controller

import mons.lang3.StringUtils;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RestController;

import com.runcode.utils.SearcuUtils;

/**

* description: 搜索Controller

* @version v1.0

* @author w

* @date 2月29日下午8:58:30

**/

@RestController

@RequestMapping(value = "/searchController")

public class SearchController {

@RequestMapping(value= "/search")

public String search(String key) {

List search = SearcuUtils.search(key, SearcuUtils.loadWordList());

return StringUtils.join(search, ",") ;

}

}

三、测试

1、浏览器输入: http://localhost:8280/spring-mvc-tourist/searchController/search?key=rm

返回结果:中国人民,中华人民共和国

2、输入:http://localhost:8280/spring-mvc-tourist/searchController/search?key=中国

返回结果:中国,中国人民,我爱中国

四、总结

1、主要依赖于 ansj_seg 包,都具体实现都进行了封装,满足简单的需求是没问题的。

2、配合上前端,就可以实现一个简单的搜索自动匹配。

HaHa_Sir

发布了156 篇原创文章 · 获赞 159 · 访问量 49万+

他的留言板

关注

标签:search,java,import,搜索,key,org,自动

来源: /HaHa_Sir/article/details/104583033

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。