范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

用ES实现拼音搜索策略

  构建拼音索引
  Step 1 在ES中安装pinyin分词器
  安装步骤详见网上的众多介绍,这里不赘述,「链接」。pinyin的开源见:GitHub - medcl/elasticsearch-analysis-pinyin: This Pinyin Analysis plugin is used to do conversion between Chinese characters and Pinyin.
  Step 2 新建索引并初始化测试数据PUT idx_test_user {   "mappings": {     "dynamic": false,     "properties": {       "name": {        "analyzer": "standard",        "type": "text",        "fields": {          "pinyin": {            "type": "text",            "analyzer": "index_pinyin_analyzer"          }        }       }     }   },   "settings": {     "analysis": {       "analyzer": {         "index_pinyin_analyzer": {                         // MARK 1           "tokenizer": "index_pinyin_tokenizer"         },         "search_pinyin_analyzer": {                        // MARK 2           "tokenizer": "search_pinyin_tokenzier"         }       },       "tokenizer": {         "index_pinyin_tokenizer": {           "keep_joined_full_pinyin" : "true",           "lowercase" : "true",           "none_chinese_pinyin_tokenize" : "false",           "keep_none_chinese_in_joined_full_pinyin" : "true",           "keep_original" : "true",           "keep_none_chinese_together" : "true",           "remove_duplicated_term" : "false",           "keep_separate_first_letter" : "false",           "type" : "pinyin",           "limit_first_letter_length" : "16",           "keep_full_pinyin" : "true"         },         "search_pinyin_tokenzier": {           "keep_joined_full_pinyin" : "true",           "lowercase" : "true",           "keep_original" : "true",           "remove_duplicated_term" : "false",           "keep_separate_first_letter" : "false",           "type" : "pinyin",           "limit_first_letter_length" : "16",           "keep_full_pinyin" : "true"         }       }     }   } }    POST idx_test_user/_doc/1 {   "name": "李超" } POST idx_test_user/_doc/2 {   "name": "李超越" } POST idx_test_user/_doc/3 {   "name": "刘超" } POST idx_test_user/_doc/4 {   "name": "李朝" }
  代码示例 1.1
  【MARK 1说明】analyzer根据使用的位置不同(索引侧、召回侧),有可能需要定义不同的analyzer,两侧的analyzer搭配在一起使用,共同构成一组搜索策略。MARK 1处为索引侧analyzer
  【MARK 2说明】该analyzer用于召回侧,与MARK 1的analyzer组合在一起使用
  索引侧analyzer效果说明
  以代码示例1.1中的测试数据为例,在倒排索引中的结果是这样的
  token
  doc:李超
  doc:李超越
  doc:刘超
  doc:李朝
  li "start_offset" : 0,
  "end_offset" : 0,
  "position" : 0 "start_offset" : 0,
  "end_offset" : 0,
  "position" : 0
  - "start_offset" : 0,
  "end_offset" : 0,
  "position" : 0
  李超 "start_offset" : 0,
  "end_offset" : 0,
  "position" : 0
  -
  -
  -
  lichao "start_offset" : 0,
  "end_offset" : 0,
  "position" : 0
  -
  - "start_offset" : 0,
  "end_offset" : 0,
  "position" : 0
  lc "start_offset" : 0,
  "end_offset" : 0,
  "position" : 0
  - "start_offset" : 0,
  "end_offset" : 0,
  "position" : 0 "start_offset" : 0,
  "end_offset" : 0,
  "position" : 0
  chao "start_offset" : 0,
  "end_offset" : 0,
  "position" : 1 "start_offset" : 0,
  "end_offset" : 0,
  "position" : 1 "start_offset" : 0,
  "end_offset" : 0,
  "position" : 1 "start_offset" : 0,
  "end_offset" : 0,
  "position" : 1
  李超越
  - "start_offset" : 0,
  "end_offset" : 0,
  "position" : 0
  -
  -
  lichaoyue
  - "start_offset" : 0,
  "end_offset" : 0,
  "position" : 0
  -
  -
  lcy
  - "start_offset" : 0,
  "end_offset" : 0,
  "position" : 0
  -
  -
  yue
  - "start_offset" : 0,
  "end_offset" : 0,
  "position" : 2
  -
  -
  liu
  -
  - "start_offset" : 0,
  "end_offset" : 0,
  "position" : 0
  -
  刘超
  -
  - "start_offset" : 0,
  "end_offset" : 0,
  "position" : 0
  -
  liuchao
  -
  - "start_offset" : 0,
  "end_offset" : 0,
  "position" : 0
  -
  李朝
  -
  -
  - "start_offset" : 0,
  "end_offset" : 0,
  "position" : 0
  表 1.1 「李超」、「李超越」、「刘超」在倒排索引中的结构
  召回侧实现方式"match_phrase": {                           // MARK 1   "name.pinyin": {     "analyzer": "search_pinyin_analyzer",   // MARK 2     "query": "lichao"   } }
  代码示例 2.1
  【MARK 1说明】注意要使用match_phrase,而不是match,不然会有badcase
  【MARK 2说明】注意这里要指定召回侧的analyzer,analyzer声明详见「 代码示例 1.1」 ,若不指定则会用ES默认analyzer:standard
  拼音搜索策略及其效果
  使用代码示例1.1中提供的数据,倒排索引结构见表1.1,召回DSL见代码示例2.1
  query
  全拼
  连字拼音
  前缀拼音
  多音字
  lichao
  李超,李朝
  李超越
  -
  -
  lichaoyue
  李超越
  -
  -
  -
  li
  -
  李超,李超越,李朝
  -
  -
  chao
  -
  李超,李超越,刘超,李朝
  -
  -
  yue
  -
  李超越
  -
  -
  liuchao
  刘超
  -
  -
  -
  liu
  -
  刘超
  -
  -
  lc
  -
  -
  不支持
  -
  lizhao
  -
  -
  -
  不支持,无法召回李朝
  表 2.1 各query在不同策略下可以召回的结果
  欢迎访问我的博客:用ES实现拼音搜索策略  百木森森的技术分享

五大私募展望A股四季度市场有望企稳反弹,应积极布局多家私募表示,对目前我国经济基本面前景可继续保持乐观。从投资研判角度来看,A股市场长周期向上的逻辑未变,第四季度A股市场可能会逐步企稳反弹,投资者可积极逢低布局。第四季度市场有望企加密货币波动性下降,美元市场仍然是加密行情涨跌的重要影响因素最近两天,加密货币行情波动明显降低,比特币24小时价格处于1921519544美元之间震荡,震荡幅度仅330美元,而以太坊则处于13031330美元区间震荡,震荡幅度更是低至27美国庆7天,写了一个轻量级API框架前言有些项目是我们自己或者为朋友所开发的,功能比较简单,接口也比较少,但通常使用SpringBoot开发后,少说也得20M,传输部署也不方便,且这个jar中很可能有8090的代码是抖音TIKTOK,不要混为一谈抖音有两个版本,国内版为抖音,国际版为TIKTOK,请不要将二者混为一谈。今天说说二者的区别。国内抖音内卷严重,闭环已经形成抖音面对国内用户,而TIKTOK则为国外用户。这个国外用长白山森工集团对当前安全生产管理工作进行再部署日前,长白山森工集团召开2022年第四次安委会(扩大)会议。党委书记董事长崔光德主持会议并讲话,总裁王越传达了全国安全生产电视电话会议精神和省安委会2022年第五次全体会议精神。会零陵微电影赤陵首发0000视频加载中剧情梗概赤陵(艺名),湖南零陵人,自小就在当地的戏班里面学习祁剧。与邻家哥哥(秋伢子)两小无猜,青梅竹马。因战争,秋伢子跟随父母,远离家乡。临行前,找到赤陵塞给她河北首个!燕山大学获批国家自然科学基金基础科学中心项目近日,由燕山大学田永君院士牵头申报的国家自然科学基金基础科学中心项目材料高压调控正式获批立项,项目直接经费资助6000万元,这是该校首次获批该项目,也是河北省的一项重大历史性突破。奉城又一项目落地开工!预计投资超6亿,用地45。6亩9月底,小方制药外用药生产基地新建项目开工建设,项目位于奉城镇2005C号地块,东至神州路,南至成凯路,西至空地,北至上海泰昌健康科技股份有限公司。该项目预计总投资6。6亿元,用地10月10日起晋中市榆次老城景区实行景区门票免费政策黄河新闻网晋中讯(记者李炳仪)为回馈广大游客一直以来对榆次老城景区的喜爱和关注,榆次老城景区积极响应山西文旅号召,决定从2022年10月10日起,面向全国游客实行免门票政策(国内中到过灵隐寺的人,知道隐字真谛的有多少?千年古刹灵隐寺,藏于西湖岸边的一座山丘上。四围皆是郁郁葱葱高矮不等的茶树与各色绿植,其中不乏千年以上的名贵稀有古木。南朝四百八十寺,多少楼台烟雨中。沿着龙井路驱车前行。待进入灵隐寺投资2亿元!黄石人又将有休闲新去处据黄石公共资源交易网消息投资约2亿元!黄石市孙家湾城中村整治更新改造项目进入招标阶段很快就能和广大市民见面啦黄石市孙家湾城中村整治更新改造项目位于黄石市下陆区团城山商圈桂林北路以东
股神巴菲特罕见狙击科技股,半导体行业寒冬已过?受伯克希尔抄底台积电消息刺激,港A两市半导体概念股彻底放飞!截至收盘,A股聚辰股份(688123。SH)20CM涨停,卓胜微(300782。SZ)大涨15。44,韦尔股份(6035古稀之年谈养生(33)六,就餐时间和饥饱的平衡。民以食为天。可见吃饭的重要性不言而喻了。中国人的就餐习惯,一日三餐。怎么样吃才健康呢?我们常说,早餐要吃饱,中午要吃,好晚上要吃少。改革开放后,随着西方国柿子养生功效多,教您食柿养生本期专家北京中医药大学东方医院脾胃肝胆科副主任医师王磊营养科主治医师魏帼眼下,柿子大量上市,作为常见的水果,柿子口感软糯,气味香甜,很适合老年人和孩子食用。而中医食疗方面,柿子也有4年1。33亿稳了!场均20分防守全队第一,年薪仅2000万湖人后悔了赛季至今西部15支球队排名变化最频繁,勇士湖人森林狼三支所谓的强队目前都排名在十名以外,爵士和灰熊表现让人惊艳,排名第四第五,开拓者还是和往年一样,常规赛期间基本都保持在前四的行列普尔爆发,勇士吊打马刺!克莱场边接受采访不自在,在演戏吗?NBA常规赛,一场焦点对决,勇士主场大战马刺!勇士又回到了主场,不过此役克莱缺阵,虽然本赛季个人表现没有达到预期,但是少了他,对于球队的实力肯定有所削弱的。因此要想击败马刺,除了库肘击头部!撞向篮球架!校园球场现伤人动作!愿球场无伤人脏动作近几日最火的篮球视频,不是NBA也不是国家队,而是这样一则校园球场废人视频。第一球,黑队10号三分线外持球,假意做突破架势,实则握紧拳头,肘部狠狠发力朝白衣防守人后脑砸去。防守者惨李铁问题曝光?前记者称8胜1平奇迹有黑幕,或牵涉两家俱乐部李铁被带走之后,了无音讯。现在,他到底是什么问题,还没有官方回复。有的说他能够平安落地,有的说不能。不过,有用的信息很少,绝大多数都是猜测。今天,前体坛周报记者冉雄飞爆料李铁执教河可能致使李铁被带走调查的原因前天在问答上回答了如何看待李铁被带走的问题,有网友评论,以国家队的水平不至于其他国家拿钱收买教练让他放水吧。中国男足确实实力不济,不过主教练和球员还是可以通过很多操作从中获得利益的埃托奥豪言喀麦隆能夺世界杯,但非洲雄狮目标一胜可能更实在卡塔尔世界杯32强巡礼G组喀麦隆北京时间11月15日是世界杯32强提交参赛名单截止日。喀麦隆队因为征召了上海申花外援巴索戈,而让中国球迷额外关注。喀麦隆队26人大名单由舒波莫廷奥纳国际足联主席在G20上呼吁为了世界杯,停战一个月吧编译观察者网李焕宇我请求你们考虑在世界杯期间休战一个月。据法新社11月15日报道,国际足联主席因凡蒂诺在二十国集团(G20)领导人巴厘岛峰会期间提议,称本周日开幕的卡塔尔世界杯或许中国人为什么都有怀嵩情结?唐文宗开成元年(836年)三月,著名政治家李德裕由袁州(治所在今江西省萍乡市)长史徙为滁州(今属安徽)刺史,于滁州建怀嵩楼,并写下怀嵩楼记。其记云周视原野,永怀嵩峰,肇此佳名,且符