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

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

万般皆是命夫妻的缘分,是有定数的01hr俗话说万般皆是命,半点不由人。人生路上,很多事情是可控的,也有很多事情,是不可控的。比方说,跨越了很多座城市,走了几千里路,然后在茫茫人海,遇到了另一个人。不知为何,彼此相改变自己来源人民日报改变思维很多时候,我们容易陷入一种思维惯性,总是用过去的方法去解决现在的问题。同一个问题,有的人可以很快找到答案,有的人花了几天也没有头绪,这可能就是因为思维方式不同。秋日限定文案1这世间美好的东西不多,初秋时节醉人的黄昏,和笑起来要人命的你。2初秋总是温柔,日间把夏天留下,日落后还带秋风。3密密初秋雨,蒙蒙欲暮天。牛羊争欲下,车马敢求前。蟋蟀挑孤咏,梧桐搅奇葩的美女哲学是不是给出的爱越多,爱你的人就越少?是不是给出的爱越多,爱你的人就越少?想爱你的人很多,是不是,只需要给点诱惑和压力就可以了?简单地认为给出爱就可以让人爱你,这很幼稚。爱别人的时候,要注意自爱。否则的话,别人怎么会感夏天更要出出汗春夏秋冬是自然造化,是天道运行。春暖花开夏热流火秋叶飘零冬雪纷飞,这样的四季轮回是每个人的人生旅途上必须直面的。但现在,随着风扇空调等清凉器具不断增加,不少人就习惯于一到夏天,就躲挑战自我,超越梦想我感谢那天,因为这,让我们真正懂得了什么是团结的力量。那天是九月十八日,一个特殊的日子,一个最后考验我们的日子,天朗气清,惠风和畅,在三营五连齐声高呼加油之后,我们共同迈着整齐的步人民日报金句摘抄09131。那些在别人看不见的地方也自律的人,真的连老天都不忍辜负。请相信在暗处执着生长,终有一日馥郁传香。2。当你不再轻易受外界干扰开始独立思考时,你就不会被星座催眠,更不会把信仰交给星有格局的人,朋友圈都是怎样的点上方听一禅第1897次和你说晚安文一禅主播一禅很喜欢这样一句话你要学着做一个有温度且睿智的人,万物不为你所有,但要万物皆为你所用。不相为谋,你照样能心平气和,冷眼相待,你依旧可以三甲医生自曝工资才1元,多人表示被降薪一个医学博士辛辛苦苦一个月还有值班,但工资只有8k,还有不到5k的。第二个,后勤绩效1。0,外科医生的绩效反而只有中位数?甚至有上个月工资为负数的?最后,院方还把这个群解散了总之,散文秋天的丝绒拿铁今天去买咖啡,看到广告语秋天的第一杯丝绒拿铁,感觉好贴切啊。秋天与丝绒听起来是那么地般配,就像一对恋人般美好。咖啡,这个词本身就是浪漫的象征,代表着美好,咖啡馆也是恋人们谈恋爱时首周五你需要知道的隔夜全球要闻周五你需要知道的隔夜全球要闻美股三大指数集体收跌,欧洲主要股指收盘多数下跌。小摩首席经济学家认为,美联储下周加息100基点的概率不到三分之一。国际原油期货结算价跌超3,WTI原油1
23天露营进藏在理塘没有遇见丁真珍珠,却遇到了意想不到的反应005。理塘在4000米上辗转难眠4000米的理塘没有丁真,没有珍珠,只有停不下来的高反,即使是这样,我们还是看到河滩就浪,直到淹没了半个车身才算尽兴,然后下一秒就这是理塘县城的主湖北神农架自驾游总行程3000KM,油费1800元,过路费530元(国庆免费)。9月23日山西大同湖北十堰,1000KM,过路费420元。住十堰邦辉国际大酒店,180元标间。本来打算住河南三门峡的太岁究竟为何物?从星星到肉块,它又经历了什么?我们常说太岁头上动土,用来表示触犯某种忌讳。从字面上来看,这个说法很容易让我们认为,太岁是某种地下的神秘力量如果动土建造的区域正好位于地下太岁的头上,人就会遭殃。所以我们常常会在新日本女特务潜伏在彭德怀身边,威逼警卫员饮弹自尽,后来结果如何1942年的一天,太行山上八路军总部,彭德怀的警卫员王满新像往常一样在巡逻,负责八路军后勤的王大娘突然拦住了他的去路小王,有个姑娘叫你。王满新看着缓缓从王大娘身后走出来的姑娘,脑子这些历史类冷知识你知道吗?1。管仲,是春秋时期,齐国著名的政治家,他辅佐齐桓公,进行行政改革,建立用人制度,发展经济农业,会盟各诸侯国,确立了东周周襄王的正统王位,另外还借此让齐桓公成为了诸侯之长。管仲因此三国时期三大保镖,一个比一个不要命,你觉得谁更英勇?周泰周泰,九江下蔡人,年轻的时候追随孙策。那个时候孙策刚刚起兵,还是袁术的部下。在孙策征讨吴地的时候,周泰立下了许多战功。后来,孙策的弟弟孙权看中了周泰,从哥哥身边要来了这员猛将。河南一村民屋檐下,连续5年出现20斤马蜂窝,为何都在同一位置?在我们的日常生活中,特别是居住在农村的朋友,经常会看到马蜂飞舞,也会经常在房前屋后的屋檐下看到马蜂窝。如果马蜂窝的个头较小,而且没有处在我们必经之路上,我们往往不去管它。而假如马蜂今天是中国少年先锋队建队纪念日,这些知识你还记得吗10月13日是属于全国少先队员共同的节日中国少年先锋队建队纪念日。你还记得队旗队徽队礼的含义吗?不论你是一名新队员,还是一名老队员,今天,让我们一起重温少先队的光荣历史和基础知识,雷锋回乡探望女友,女友已结婚,雷锋没想到你会结婚,不等我了山有木兮木有枝,心悦君兮君不知。人世间最美好的事情莫过于爱情,雷锋同志有爱情故事吗?他的爱情故事如何?笔者为您慢慢揭开这个神秘的面纱。谈起雷锋,大家想到的是一个立体的丰满的人物形象1960年,李仙洲特赦后见到周总理我有个问题,13年都没弄明白1947年2月,中国人民解放军在莱芜战役中围歼了五万国民党军队,第二绥靖区副司令李仙洲被俘。往后的十几年岁月中,李仙洲一直被关押在功德林监狱改造服刑。不过在监狱中的这些年,一直有一1945年富锦日俘暴乱内幕女侨借口上厕所开道,群起击杀苏军26人头条创作挑战赛嘘,别出声,把你们的衣服脱下,让我们穿上,我是来救大家出苦海的,1945年8月14日,佳木斯市富锦县富锦一所中学,日军少佐畑中宏对被苏军关在那里的日侨们说。60万关东