ES搜索——全拼&首拼前綴匹配mapping設(shè)計

1、創(chuàng)建索引终惑,并設(shè)計mapping

全拼和首拼需要分兩個字段。一開始想要用一個字段解決门扇,結(jié)果怎么弄都無法滿足需求雹有。

PUT aikg_test
{
  "mappings": {
    "properties": {
      "name": {
        "type": "keyword",
        "fields": {
          "full_pinyin": {
            "type": "text",
            "store": false,
            "term_vector": "with_offsets",
            "analyzer": "full_pinyin_analyzer",
            "boost": 10
          },
          "first_pinyin": {
            "type": "text",
            "store": false,
            "term_vector": "with_offsets",
            "analyzer": "first_pinyin_analyzer",
            "boost": 10
          }
        }
      }
    }
  },
  "settings": {
    "analysis": {
      "analyzer": {
        "first_pinyin_analyzer": {
          "tokenizer": "first_pinyin_letter"
        },
        "full_pinyin_analyzer": {
          "tokenizer": "full_pinyin_letter"
        }
      },
      "tokenizer": {
        "first_pinyin_letter": {
          "type": "pinyin",
          "keep_first_letter": true,
          "keep_full_pinyin": false,
          "keep_none_chinese": false, 
          "keep_none_chinese_in_first_letter": true,
          "none_chinese_pinyin_tokenize": false
        },
        "full_pinyin_letter": {
          "type": "pinyin",
          "keep_first_letter": false,
          "keep_full_pinyin": false,
          "keep_none_chinese": true,
          "keep_none_chinese_in_first_letter": false,
          "none_chinese_pinyin_tokenize": false,
          "keep_joined_full_pinyin": true,
          "keep_none_chinese_in_joined_full_pinyin": true
        }
      }
    }
  }
}

2、分詞例子

2.1臼寄、全拼分詞

具體參數(shù)設(shè)置:

"full_pinyin_letter": {
  "type": "pinyin",
  "keep_first_letter": false,
  "keep_full_pinyin": false,
  "keep_none_chinese": true,
  "keep_none_chinese_in_first_letter": false,
  "none_chinese_pinyin_tokenize": false,
  "keep_joined_full_pinyin": true,
  "keep_none_chinese_in_joined_full_pinyin": true
}

分詞:

GET aikg_test/_analyze
{
  "text": ["劉德華at2016"],
  "analyzer": "full_pinyin_analyzer"
}

分詞結(jié)果:

image.png

關(guān)鍵參數(shù):"keep_joined_full_pinyin": true"keep_none_chinese_in_joined_full_pinyin": true霸奕,前者保證漢字全拼連接在一起,后者保證漢字全拼和其他字符連在一起吉拳。注意參數(shù):"keep_full_pinyin": false质帅。

2.2、首拼分詞

具體參數(shù)設(shè)置:

"first_pinyin_letter": {
  "type": "pinyin",
  "keep_first_letter": true,
  "keep_full_pinyin": false,
  "keep_none_chinese": true,
  "keep_none_chinese_in_first_letter": true,
  "none_chinese_pinyin_tokenize": false
}

分詞:

GET aikg_test/_analyze
{
  "text": ["劉德華at2016"],
  "analyzer": "first_pinyin_analyzer"
}

分詞結(jié)果:

image.png

關(guān)鍵參數(shù):"keep_none_chinese": false,如果該值設(shè)置為 true临梗,“劉德華at2016”會拆分為兩個詞,其中非中文會分成一個詞稼跳。這種情況下輸入 at 前綴匹配盟庞,會查詢到該詞,而實際上該詞并不是以 at 開頭汤善。分詞結(jié)果如下圖:

image.png

當設(shè)置參數(shù)"keep_none_chinese_in_first_letter": true什猖,就會把漢字首拼和其他字符連接在一起。

3红淡、大小寫問題

當參數(shù)為大寫“LDH”時不狮,無法匹配到劉德華幸缕。解決方法很簡單续室,在程序里把參數(shù)統(tǒng)一轉(zhuǎn)為小寫。


其他參數(shù)詳見:GitHub拼音分詞插件 elasticsearch-analysis-pinyin

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
禁止轉(zhuǎn)載沽甥,如需轉(zhuǎn)載請通過簡信或評論聯(lián)系作者桶蝎。
  • 序言:七十年代末驻仅,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子登渣,更是在濱河造成了極大的恐慌噪服,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,496評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件胜茧,死亡現(xiàn)場離奇詭異粘优,居然都是意外死亡,警方通過查閱死者的電腦和手機呻顽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評論 3 392
  • 文/潘曉璐 我一進店門雹顺,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人芬位,你說我怎么就攤上這事无拗。” “怎么了昧碉?”我有些...
    開封第一講書人閱讀 162,632評論 0 353
  • 文/不壞的土叔 我叫張陵英染,是天一觀的道長。 經(jīng)常有香客問我被饿,道長四康,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,180評論 1 292
  • 正文 為了忘掉前任狭握,我火速辦了婚禮闪金,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己哎垦,他們只是感情好囱嫩,可當我...
    茶點故事閱讀 67,198評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著漏设,像睡著了一般墨闲。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上郑口,一...
    開封第一講書人閱讀 51,165評論 1 299
  • 那天鸳碧,我揣著相機與錄音,去河邊找鬼犬性。 笑死瞻离,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的乒裆。 我是一名探鬼主播套利,決...
    沈念sama閱讀 40,052評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼缸兔!你這毒婦竟也來了日裙?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,910評論 0 274
  • 序言:老撾萬榮一對情侶失蹤惰蜜,失蹤者是張志新(化名)和其女友劉穎昂拂,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體抛猖,經(jīng)...
    沈念sama閱讀 45,324評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡格侯,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,542評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了财著。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片联四。...
    茶點故事閱讀 39,711評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖撑教,靈堂內(nèi)的尸體忽然破棺而出朝墩,到底是詐尸還是另有隱情,我是刑警寧澤伟姐,帶...
    沈念sama閱讀 35,424評論 5 343
  • 正文 年R本政府宣布收苏,位于F島的核電站,受9級特大地震影響愤兵,放射性物質(zhì)發(fā)生泄漏鹿霸。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,017評論 3 326
  • 文/蒙蒙 一秆乳、第九天 我趴在偏房一處隱蔽的房頂上張望懦鼠。 院中可真熱鬧钻哩,春花似錦、人聲如沸肛冶。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽睦袖。三九已至阳仔,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間扣泊,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評論 1 269
  • 我被黑心中介騙來泰國打工嘶摊, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留延蟹,地道東北人。 一個月前我還...
    沈念sama閱讀 47,722評論 2 368
  • 正文 我出身青樓叶堆,卻偏偏與公主長得像阱飘,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子虱颗,可洞房花燭夜當晚...
    茶點故事閱讀 44,611評論 2 353