elasticSearch+ik_smart 支持 符号检索
时间:2020-05-20
本文章向大家介绍elasticSearch+ik_smart 支持 符号检索,主要包括elasticSearch+ik_smart 支持 符号检索使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
首先 来展示下效果
1% 在一起 是因为我在自定义词库里面定义了,如果不修改ik_smart源码 是连百分号 都看不到的,对了 我使用的是 elasticsearch-analysis-ik-7.3.2
第一步 下载elasticsearch-analysis-ik-7.3.2源码 找到 CharacterUtil.java这个类
将 identifyCharType 方法从这样
static int identifyCharType(char input){ if(input >= '0' && input <= '9'){ return CHAR_ARABIC; }else if((input >= 'a' && input <= 'z') || (input >= 'A' && input <= 'Z')){ return CHAR_ENGLISH; }else { Character.UnicodeBlock ub = Character.UnicodeBlock.of(input); if(ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS || ub == Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS || ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A){ //目前已知的中文字符UTF-8集合 return CHAR_CHINESE; }else if(ub == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS //全角数字字符和日韩字符 //韩文字符集 || ub == Character.UnicodeBlock.HANGUL_SYLLABLES || ub == Character.UnicodeBlock.HANGUL_JAMO || ub == Character.UnicodeBlock.HANGUL_COMPATIBILITY_JAMO //日文字符集 || ub == Character.UnicodeBlock.HIRAGANA //平假名 || ub == Character.UnicodeBlock.KATAKANA //片假名 || ub == Character.UnicodeBlock.KATAKANA_PHONETIC_EXTENSIONS){ return CHAR_OTHER_CJK; } } //其他的不做处理的字符 return CHAR_USELESS; }
修改为 这样 对 就是多加个 else if语句块
static int identifyCharType(char input){ if(input >= '0' && input <= '9'){ return CHAR_ARABIC; }else if((input >= 'a' && input <= 'z') || (input >= 'A' && input <= 'Z')){ return CHAR_ENGLISH; }else { Character.UnicodeBlock ub = Character.UnicodeBlock.of(input); if(ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS || ub == Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS || ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A){ //目前已知的中文字符UTF-8集合 return CHAR_CHINESE; }else if(ub == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS //全角数字字符和日韩字符 //韩文字符集 || ub == Character.UnicodeBlock.HANGUL_SYLLABLES || ub == Character.UnicodeBlock.HANGUL_JAMO || ub == Character.UnicodeBlock.HANGUL_COMPATIBILITY_JAMO //日文字符集 || ub == Character.UnicodeBlock.HIRAGANA //平假名 || ub == Character.UnicodeBlock.KATAKANA //片假名 || ub == Character.UnicodeBlock.KATAKANA_PHONETIC_EXTENSIONS){ return CHAR_OTHER_CJK; } else if (ub == Character.UnicodeBlock.GREEK // 希腊符号 // 希腊扩展符号 || ub == Character.UnicodeBlock.GREEK_EXTENDED // 拉丁字符 || ub == Character.UnicodeBlock.BASIC_LATIN // 拉丁补充字符 || ub == Character.UnicodeBlock.LATIN_1_SUPPLEMENT // 拉丁扩展A字符 || ub == Character.UnicodeBlock.LATIN_EXTENDED_A // 拉丁扩展B字符 || ub == Character.UnicodeBlock.LATIN_EXTENDED_B) { return CHAR_CHINESE; } } //其他的不做处理的字符 return CHAR_USELESS; }
然后 高能预警
使用javac 将我们修改后的 CharacterUtil 类编译成.class文件
然后直接替换进本来的之前使用的jar包(可能没描述清楚,截个图)
然后
然后 重启elasticSearch 搞定 (其实我也只是抱着试一试的心态 没想到真的可以)
原文地址:https://www.cnblogs.com/guanxiaohe/p/12922742.html
- Vijos P1035 贪婪的送礼者【模拟】
- Vijos P1114 FBI树【DFS模拟,二叉树入门】
- Vijos P1448 校门外的树【多解,线段树,树状数组,括号序列法+暴力优化】
- 撞库扫号防范
- 分享一个 HTTPS A+ 的 nginx 配置
- Vijos P1785 同学排序【模拟】
- Vijos P1784 数字统计【模拟】
- 网络安全黑暗森林法则:2015 ISC 深度回顾
- Codeforces 626G Raffles(贪心+线段树)
- window.opener.location 安全风险讨论
- Vijos P1497 立体图【模拟】
- Vijos P1127 级数求和【模拟】
- 新型漏洞:利用浏览器Cookie绕过HTTPS并窃取私人信息
- Vijos P1113 不高兴的津津【模拟】
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 听说MongoDB你很豪横?-------------MongoDB 部署分片群集以及管理分片
- SAP Spartacus和product相关的标准normalizer
- 【Rust 日报】2020-09-09 引入“auditable”
- 听说MongoDB你很豪横?-------------MongoDB复制集以及管理优化
- 听说Memcache你很豪横?-------------深入剖析Memcache 安装及管理数据库操作
- 听说Memcache你很豪横?-------------深入剖析Memcache+keepalive高可用群集
- 排障集锦:九九八十一难之第十四难!------------- 安装magent时make编译报错
- 【Rust日报】2020-09-06 Evil_DLL 用来测试注入方法的DLL
- 【Rust日报】2020-09-05 微软在c++静态分析工具实现了一些rust的安全规则
- 一起来玩玩WebGL
- 自研网关:多项目的swagger聚合功能
- Prometheus 如何做到“活学活用”,大牛总结的避坑指南
- 文档驱动 —— 表单组件(一):表单元素组件 优点缺点选择文本类的Inputcheck 多选value的类型问题
- Vue3.0源码结构分析
- 【每周一库】- cached - 缓存结构型、辅助函数记忆化