• [ElasticSearch] 如何使用中文分詞ik與繁簡轉換stconvert插件


    一. 環境安裝

    ElasticSearch(以下簡稱ES)安裝已經算相對簡單了, 但要使用需要配置的插件, 對剛入門的新手還是有點麻煩, 所幸medcl大神提供一個配置好的ES-rtf版本, 新手們在參數配置上浪費無謂的時間。

    Github上的elasticsearch-rtf , 裡面都有詳盡的使用說明, 這裡就不多說了.(P.S. ansj,string2int這兩個插件需使用Redis, 若不需要使用可以將這兩個插件移除)

    二. 使用ik中文分詞插件

    ik中文分詞插件例子在ES-Sense演示語法 ,

    1. 創建名為myindex的index

    PUT http://localhost:9200/myindex
    2.在Type名為fulltext建立mapping, 若fulltext有資料ES會報錯
    POST http://localhost:9200/myindex/fulltext/_mapping
    {
        "fulltext": {
                 "_all": {
                "indexAnalyzer": "ik",
                "searchAnalyzer": "ik",
                "term_vector": "no",
                "store": "false"
            },
            "properties": {
                "content": {
                    "type": "string",
                    "store": "no",
                    "term_vector": "with_positions_offsets",
                    "indexAnalyzer": "ik",
                    "searchAnalyzer": "ik",
                    "include_in_all": "true",
                    "boost": 8
                }
            }
        }
    }

    3. 接下來我們可以在/index/fulltext建立一下資料了, 這裡將網站上content改為"content", 在Sense執行是都沒有問題的, 但使用Paly Framework在解析Json會出現問題, 所以最好補上雙引號

    POST http://localhost:9200/myindex/fulltext/1
    {"content":"美国留给伊拉克的是个烂摊子吗"}
    
    
    POST http://localhost:9200/myindex/fulltext/2 
    {"content":"公安部:各地校车将享最高路权"}
    
    
    POST http://localhost:9200/myindex/fulltext/3 
    {"content":"中韩渔警冲突调查:韩警平均每天扣1艘中国渔船"}
    
    
    POST http://localhost:9200/myindex/fulltext/4 
    {"content":"中国驻洛杉矶领事馆遭亚裔男子枪击 嫌犯已自首"}

    4. 接下來我們用"中国"這個關鍵字做搜尋

    POST http://localhost:9200/myindex/fulltext/_search 
    {
        "query" : { "term" : { "content" : "中国" }},
        "highlight" : {
            "pre_tags" : ["<tag1>", "<tag2>"],
            "post_tags" : ["</tag1>", "</tag2>"],
            "fields" : {
                "content" : {}
            }
        }
    }

    ik github上有搜尋的結果這裡就不顯示了

    5. 如何輸入繁體"中國" 得出相同的搜尋結果呢?

    GET /myindex/fulltext/_search?pretty
    {
      query: {
        match: {
          content: {
            analyzer: "t2s_convert",
            query: "中國"
            
          }
          
        }
        
      },
       "highlight" : {
            "pre_tags" : ["<tag1>", "<tag2>"],
            "post_tags" : ["</tag1>", "</tag2>"],
            "fields" : {
                "content" : {}
            }
        }
    }

    analyzer: "t2s_convert"這指的是設定analyzer選擇用t2s_convert(繁 to 簡 轉換)

    這樣就能繁體對簡體資料做搜尋囉。

  • 相关阅读:
    SpringMVC视图解析器
    JavaEE PO VO BO DTO POJO DAO 整理总结
    Android Studio JNI开发入门教程
    javah的使用
    右键“在此处打开命令行窗口”的一个小秘密
    URL和URI的区别
    自学使用
    Ribbon使用
    Eureka集群搭建
    ssm常见面试题
  • 原文地址:https://www.cnblogs.com/YangMark/p/3831995.html
Copyright © 2020-2023  润新知