ES 拼音中文混合檢索

1. 使用場景介紹

搜索功能支持:拼音檢索诲宇,中文檢索俭令,拼音中文混合檢索
例如:輸入:l德h
【期望結果】:劉德華 和劉德華4
【不期望結果】:劉得華 、劉的華

1. 下載pinyin 插件

github地址
注意:下載的版本要與自己的ES版本一致

2. 修改插件源碼以及安裝

注意:
1)目前v7.13.1 已經(jīng)支持拼音中文混合檢索 可以直接安裝插件直接使用
2)我本地目前是v7.12.0 换吧,所以需要對源碼進行修改泌霍;如果你的ES版本也是低于v7.13.1版本;也需要進行修改教沾;
我修改方法:
1)下載 v7.12.0 源碼和v7.13.1 源碼
2)通過compare進行比較蒲跨,直接把v7.13.1 多余的代碼復制到 v7.12.0 中
3)修改pom 版本
4)maven 打包 mvn clean package
5)將\elasticsearch-analysis-pinyin-7.12.0\target\releases\elasticsearch-analysis-pinyin-7.12.0.zip 包拷貝到 ES 安裝目錄的\elasticsearch-7.12.0-windows-x86_64\elasticsearch-7.12.0\plugins 文件夾下,解壓后授翻,刪除elasticsearch-analysis-pinyin-7.12.0.zip 見截圖:


圖片.png

6)重啟ES

  1. 驗證插件是否安裝成功: GET /_cat/plugins?pretty 成功截圖:


    圖片.png

3. 創(chuàng)建index并使用kibana進行測試

1)創(chuàng)建索引

############################創(chuàng)建索引#########################
PUT /my_index
{
  "settings": {
    "analysis": {
      "analyzer": {
        "pinyin_chinese_analyzer": {
          "tokenizer": "pinyin_tokenizer"
        },
        "pinyin_analyzer": {
          "tokenizer": "pinyin_chinese_tokenizer"
        }
      }, 
      "tokenizer": {
        "pinyin_chinese_tokenizer": {
          "type": "pinyin",
          "keep_first_letter": false,
          "keep_separate_first_letter": false,
          "keep_full_pinyin":false,
          "keep_original":false,
          "limit_first_letter_length":50,
          "keep_separate_chinese": true,
          "lowercase":true
          
        },
        "pinyin_tokenizer": {
          "type": "pinyin",
          "keep_first_letter": false,
          "keep_separate_first_letter": true,
          "keep_full_pinyin":true,
          "keep_original":false,
          "limit_first_letter_length":50,
          "keep_separate_chinese": true,
          "lowercase":true
        }
      }
    }
  }
}
  1. 查詢索引
#####################查詢索引#########################
GET /_cat/indices
  1. Mapping設置
POST /my_index/_mapping 
{
  "properties": {
      "name": {
          "type": "text",
          "analyzer": "pinyin_chinese_analyzer",
          "search_analyzer": "pinyin_analyzer"
      }
  }
}
  1. 查詢Mapping設置是否生效
#-------------------查詢Mapping-----------------------
GET /my_index/_mapping?pretty
  1. 測試索引下定義的分詞器
#--------------------測試分詞器----------------------
GET /my_index/_analyze
{
   "text": ["劉德華"],
   "analyzer": "pinyin_chinese_analyzer"
}

GET /my_index/_analyze
{
   "text": ["劉德h"],
   "analyzer": "pinyin_analyzer"
}
  1. 創(chuàng)建數(shù)據(jù)
###################創(chuàng)建數(shù)據(jù)########################
POST /my_index/_doc/1
{"name":"劉德華"}

PUT /my_index/_doc/2
{"name":"劉的華"}

PUT /my_index/_doc/3
{"name":"劉得華"}

PUT /my_index/_doc/4
{"name":"劉德華4"}

PUT /my_index/_doc/5
{"name":"劉5德5華5"}
  1. 查詢所有數(shù)據(jù)
####################查詢數(shù)據(jù)############################
GET /my_index/_search
{
  "query": {
    "match_all": {}
  }
}
  1. 拼音中文混合檢索
####################檢索數(shù)據(jù)########################
GET /my_index/_search
{
  "query": {
    "match_phrase": {
      "name": "l德h"
    }
  }
}

[參考文檔]
es 修改拼音分詞器源碼實現(xiàn)漢字/拼音/簡拼混合搜索時同音字不匹配 - Liu_d_w - 博客園 (cnblogs.com)
https://github.com/medcl/elasticsearch-analysis-pinyi

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末或悲,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子堪唐,更是在濱河造成了極大的恐慌巡语,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,914評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件淮菠,死亡現(xiàn)場離奇詭異男公,居然都是意外死亡,警方通過查閱死者的電腦和手機合陵,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評論 2 383
  • 文/潘曉璐 我一進店門枢赔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人拥知,你說我怎么就攤上這事糠爬。” “怎么了举庶?”我有些...
    開封第一講書人閱讀 156,531評論 0 345
  • 文/不壞的土叔 我叫張陵执隧,是天一觀的道長。 經(jīng)常有香客問我,道長镀琉,這世上最難降的妖魔是什么峦嗤? 我笑而不...
    開封第一講書人閱讀 56,309評論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮屋摔,結果婚禮上烁设,老公的妹妹穿的比我還像新娘。我一直安慰自己钓试,他們只是感情好装黑,可當我...
    茶點故事閱讀 65,381評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著弓熏,像睡著了一般恋谭。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上挽鞠,一...
    開封第一講書人閱讀 49,730評論 1 289
  • 那天疚颊,我揣著相機與錄音,去河邊找鬼信认。 笑死材义,一個胖子當著我的面吹牛,可吹牛的內容都是我干的嫁赏。 我是一名探鬼主播其掂,決...
    沈念sama閱讀 38,882評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼潦蝇!你這毒婦竟也來了款熬?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,643評論 0 266
  • 序言:老撾萬榮一對情侶失蹤护蝶,失蹤者是張志新(化名)和其女友劉穎华烟,沒想到半個月后翩迈,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體持灰,經(jīng)...
    沈念sama閱讀 44,095評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,448評論 2 325
  • 正文 我和宋清朗相戀三年负饲,在試婚紗的時候發(fā)現(xiàn)自己被綠了堤魁。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,566評論 1 339
  • 序言:一個原本活蹦亂跳的男人離奇死亡返十,死狀恐怖妥泉,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情洞坑,我是刑警寧澤盲链,帶...
    沈念sama閱讀 34,253評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響刽沾,放射性物質發(fā)生泄漏本慕。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,829評論 3 312
  • 文/蒙蒙 一侧漓、第九天 我趴在偏房一處隱蔽的房頂上張望锅尘。 院中可真熱鬧,春花似錦布蔗、人聲如沸藤违。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽顿乒。三九已至,卻和暖如春骡男,著一層夾襖步出監(jiān)牢的瞬間淆游,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評論 1 264
  • 我被黑心中介騙來泰國打工隔盛, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留犹菱,地道東北人。 一個月前我還...
    沈念sama閱讀 46,248評論 2 360
  • 正文 我出身青樓吮炕,卻偏偏與公主長得像腊脱,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子龙亲,可洞房花燭夜當晚...
    茶點故事閱讀 43,440評論 2 348

推薦閱讀更多精彩內容