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

用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实现拼音搜索策略  百木森森的技术分享

为什么染了黑头发近段时间就不能染其他颜色了?如果给你讲色素粒子含量表你可能不一定能听懂,如果用一张表,把用数字变成大白话,你瞬间就懂了。这张图告诉你深色可以盖住浅色,浅色盖不住深色。如果你用四万以下的任何数字去减四万,排除负联想称得上是民族品牌吗?你有没有买过联想的产品?以前是,现在己变了味道,买过联想的笔记本电脑,体验很不好,服务很差。联想是国际品牌!我买过好几台联想了!联想曾经是民族品牌。联想最早的电脑和联想汉卡我都用过,几年前开始至今,我不用刘诗雯不出战,导致1比3输了江苏,是伤痛还是保存实力?刘诗雯不出战,肯定有因,我认为原因主要有1,团体赛,各队抽鉴,分为A,B,C,D四组,每组内各队实行循环赛,从今日广东队(刘诗雯所在),江苏队比赛的人员大名单中就没有小枣,所以小枣中国男篮还能回到姚明时代的实力吗?未来十年没有希望,姚明那个时代除了姚明在中锋位置上鹤立鸡群外,外线的朱芳雨王仕鹏也是准的一批,再加上王治郅阿莲刘炜,能打赢斯洛文尼亚和德国和西班牙打进加时,目前这批人也就是想想而已WTT澳门冠军赛的赛程已经出炉了,预测本届比赛的各项冠亚军?wtt冠军赛澳门站比赛将于本月中旬开打,马龙许昕刘诗雯三位老将都会复出参赛,此外樊振东王楚钦陈梦孙颖莎王曼昱等人也会参赛,国乒将派出全主力阵容。从目前已经公布的赛程来看,比赛将于1天津女排轻松夺冠,联赛实力独自一档,这有利于女排联赛发展吗?首先祝贺天津女排夺得联赛冠军,当这个冠军成色不足,就因为排协的一道纸令单外援政策还有中国女排优秀队员不知何因加盟天津,形成了女排联赛天津一支独大,即没有开打就知道冠军归属。也使得其北京理工大学和西北工业大学同属工信部直属高校,哪所学校实力强些?回顾以往我国高等教育的发展实际来看,有很多高校团体,比如国防七子建筑老八校等,其中国防七子在国防领域尤为著名,也构成了我国国防领域中高等教育的最强实力。根据相关资料显示,我国国防七怎么看待广西在第十四届全运会上的倒数战绩?第十四届全运会,广西代表队何时能破金?目前来看,广西代表队处境尴尬。在广西周围的省份,全运会开幕至今只有广西代表队一金未得,只夺得3银2铜,排在总奖牌榜倒数第三位,仅高于青海省代表为什么詹姆斯每个冠军含金量都很高,而击败詹姆斯夺冠的球队的冠军含金量都很低?科比退役后,现在各大论坛基本都是詹姆斯球迷偏多,刚好詹姆斯又处于巅峰期,现在主导舆论的都是詹姆斯球迷,各大篮球论坛提到科比都各种被黑,詹姆斯的各种荣誉都被无限夸大,詹姆斯每次夺冠,十二强赛,中国男足会输给越南吗?如果输了联赛还能办下去吗?十二强赛,中国男足会输给越南吗?如果输了,联赛还能办下去吗,12强赛中越之战是在10月7日进行,中国男足会输越南吗?这不好说,最终结果谁胜谁负,目前中国男足有信心战胜越南,而越南目从目前各路媒体对全红婵的热捧,会不会出现刘翔式的悲剧?我觉得不会,当然也不要过度消费这个孩子。第一刘翔式悲剧,更主要是因为我们在田径赛场的缺失,绝大部分都是黑人为主,国人很疯狂,且刘翔当时思想成熟,想的多,反而压力更大。第二全红婵,从
网传谷爱凌已经重回美国籍?官方给出准确回应,20岁的她已做抉择去年的冬奥会上,谷爱凌可谓一鸣惊人,帮助中国队拿到了多项赛事的金牌,可以说是冬奥会发挥最出色的运动员。然而随着谷爱凌成为网络的焦点之后,争议声也是接二连三的传来,有人对于谷爱凌的国2020年的赛事现在才踢!本场拿下后,河床就又要跟博卡踢决赛了河床在中立场地3比2力克班菲尔德的这场比赛,不是阿甲,也不是职业联赛杯,也不是阿根廷杯。而且原本也不应该在今年举行,甚至也不应该在去年或前年进行。正常情况下这是2020年底的赛事,吴金贵新投资人来后俱乐部发展会越来越好,今年目标会更远直播吧2月24日讯今天,上海申花时隔一年在康桥体育基地再次开放训练,基地目前已经更名为久事康桥体育基地。据西北望看台报道,申花主帅吴金贵在接受采访时表示,新的投资人来了之后,从资金24岁化身顶级3D,25岁膝盖伤病不断,26岁恐生涯报销!场均1355的数据,超过四成的三分命中率,场均三分命中数超过3个,还能提供1。8个抢断。当你看到这份数据,你会认为这一定是一名优质的3D的球员,有进攻有防守有组织。他就是17年的天女性到了中年,生理需求会比男性更强烈?别害羞,了解有好处生理需求是人最基本的需求,比如想要睡觉,渴了知道喝水,冷了知道添衣等等。这些都是最基本的生理需求,再就是繁衍生息而产生的生理需求。针对于女性朋友来说,一般在十五岁左右开始,会产生生洗面奶应该白天用还是晚上用,一天使用几次?很多人其实都不会用洗面奶,要不然就早上用,要不然就晚上用,或者直接一天用两次。但其实洗面奶的使用次数和时间,是根据肤质和气候决定的,另外每个人的皮肤出油情况都不一样,所以不能一概而因极度怪异的原因而发明的食物!可乐那个太夸张了!(二)让你健康长寿的汉堡大家有没有吃过梳士巴利汉堡扒呢?(由早期倡导低碳水化合物减肥法的美国医生詹姆士。梳士巴利所发明)在美国内战期间,他作为一名军医在军队服役,他在这个时候发现严重影响解码横琴金融30条丨黄挚欢发挥横琴示范带头作用,推动金融市场高度开放视频加载中南方财经全媒体记者黄浩博程立元广州报道2月23日,中国人民银行银保监会证监会外汇局广东省人民政府联合发布关于金融支持横琴粤澳深度合作区建设的意见(下称意见),为横琴粤澳深这类网红文具,14岁以下不适用!监管部门紧急提醒来源央视财经最近,各大学校迎来开学季,有一种磁性笔在短视频平台流行,成为新晋网红文具,经常被儿童及中小学生作为玩具玩耍,不过万一被误吞危害较大。磁性笔成网红文具容易被儿童误吞危害大咖啡对于心脏有好处还是有害处?喝咖啡记住这4点否则可能会有害好内容我来评咖啡对心血管到底是有好处还是有坏处呢?喝咖啡一定记住今天这4点,否则可能会有害指南推荐中国健康生活方式预防心血管疾病指南中写道有关咖啡与心血管健康的研究,多数认为适量饮中老年建议3种护心食物,心脏越吃越年轻!人体有很多器官都非常重要,但有一个器官听起来就像万物之源就是我们的心脏。心脏主要负责身体的血液循环,为身体提供能量,想要健康长寿,心脏的健康不容忽视。众所周知,很多中老年人都容易患