Elasticsearch添加拼音搜索支持

      網友投稿 980 2025-04-03

      一份不錯的資料

      ELASTIC 搜索開發實戰

      一、安裝插件

      拼音分詞擴展elasticsearch-analysis-pinyin安裝

      文檔: https://github.com/medcl/elasticsearch-analysis-pinyin

      二、新建索引添加拼音支持

      替換為 實際 index

      替換為 實際 type

      PUT { "settings" : { "analysis" : { "analyzer" : { "pinyin_analyzer" : { "tokenizer" : "my_pinyin" } }, "tokenizer" : { "my_pinyin" : { "type" : "pinyin", "keep_first_letter":false, "keep_separate_first_letter" : false, "keep_full_pinyin" : true, "keep_original" : false, "limit_first_letter_length" : 16, "lowercase" : true } } } }, "mappings": { "": { "properties": { "name": { "type": "text", "index": true, "fields":{ "pinyin":{ "type":"text", "analyzer":"pinyin_analyzer" } } }, "link": { "type": "keyword", "index": false }, "id": { "type": "long" }, "update_time": { "type": "date", "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis" } } } } }

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      25

      26

      27

      28

      29

      30

      31

      32

      33

      34

      35

      36

      37

      38

      39

      40

      41

      42

      43

      44

      45

      46

      47

      48

      49

      50

      51

      52

      53

      分詞測試

      GET /_analyze { "field": "name.pinyin", "text": "內蒙古" } 返回 { "tokens": [ { "token": "nei", "start_offset": 0, "end_offset": 1, "type": "word", "position": 0 }, { "token": "meng", "start_offset": 1, "end_offset": 2, "type": "word", "position": 1 }, { "token": "gu", "start_offset": 2, "end_offset": 3, "type": "word", "position": 2 } ] }

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      25

      26

      27

      28

      29

      30

      31

      32

      二、已有索引添加拼音支持

      1、新建索引

      PUT { "mappings": { "": { "properties": { "name": { "type": "keyword", "index": true }, "link": { "type": "keyword", "index": false }, "id": { "type": "long" }, "update_time": { "type": "date", "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis" } } } } }

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      Elasticsearch添加拼音搜索支持

      21

      22

      23

      24

      2、設置拼音分詞器

      POST /_close PUT /_settings { "index": { "analysis": { "analyzer": { "pinyin_analyzer": { "tokenizer": "my_pinyin" } }, "tokenizer": { "my_pinyin": { "type": "pinyin", "keep_first_letter": true, "keep_separate_first_letter": true, "keep_full_pinyin": true, "keep_original": false, "limit_first_letter_length": 16, "lowercase": true } } } } } POST /_open

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      25

      26

      27

      3、修改mapping,添加拼音分詞器

      PUT //_mapping { "": { "properties": { "name": { "type": "keyword", "index": true, "fields":{ "pinyin":{ "type":"text", "analyzer":"pinyin_analyzer" } } }, "link": { "type": "keyword", "index": false }, "id": { "type": "long" }, "update_time": { "type": "date", "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis" } } } } GET /_mapping # 將當前索引的數據重新替換一下當前索引 POST /_update_by_query?conflicts=proceed

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      25

      26

      27

      28

      29

      30

      31

      32

      33

      34

      35

      36

      4、搜索測試

      get /_search { "query_string": { "fields": [ "name", "name.pinyin" ], "query": "王蘇川", "default_operator": "AND" } }

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      參考

      Elastic 搜索開發實戰 拼音處理

      Elasticsearch

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:WPS表格如何實現相同內容多表格復制(wps怎么同時復制多個表格)
      下一篇:組織結構圖(組織結構圖用excel怎么做)
      相關文章
      亚洲成色www久久网站夜月| 午夜亚洲福利在线老司机| 久久精品九九亚洲精品| 欧洲亚洲国产清在高| 亚洲最大激情中文字幕| 久久久久一级精品亚洲国产成人综合AV区 | 亚洲熟妇无码爱v在线观看| 亚洲日韩欧洲乱码AV夜夜摸| 国产国拍亚洲精品福利 | 亚洲一区二区三区AV无码| 久久精品国产精品亚洲下载 | 亚洲成av人片不卡无码| 亚洲国产成人精品青青草原| 亚洲成av人片在线看片| 国产精品亚洲片夜色在线| 亚洲五月综合缴情婷婷| 亚洲综合av一区二区三区不卡| 国产亚洲国产bv网站在线| 亚洲精品美女网站| 亚洲欧美乱色情图片| 亚洲av日韩aⅴ无码色老头| 亚洲精品久久无码av片俺去也| 亚洲精品国产精品| 无码天堂亚洲国产AV| 亚洲国产午夜福利在线播放| 久久久久亚洲精品中文字幕| 亚洲va无码专区国产乱码| 亚洲一区免费观看| 亚洲剧场午夜在线观看| 亚洲国产日韩综合久久精品| 亚洲国产精品自在自线观看| 国产在亚洲线视频观看| 国产精品亚洲精品日韩已方 | 亚洲午夜无码久久久久小说| 精品国产_亚洲人成在线| 亚洲一区视频在线播放| 亚洲爆乳无码专区| 亚洲欧洲日本国产| 亚洲日韩AV一区二区三区中文 | 亚洲国产精品自产在线播放| 亚洲中文字幕无码久久精品1|