美文网首页简书付费文章
ES中文分词拼音一箭双雕|yii2 es中文分词|拼音分词|ik

ES中文分词拼音一箭双雕|yii2 es中文分词|拼音分词|ik

作者: LeeBoot | 来源:发表于2019-07-15 11:24 被阅读0次

    实用es的目的:提高搜索速度(mysql),降低服务器负载(cpu和io)
    本人实施后效果:

    1.负载从80%-100+%(由于是云主机,有时候会飙升到200%多,一般是150%-170%之间)
    降低至稳定在10%以下。
    2.搜索速度从千万数据的秒级降低至毫秒级(个位数的),也就是10毫秒以下,速度提升560+倍

    查看分词结果
    //query结构
    GET /{index}/{type}/{_id}/_termvectors?fields={field_name}
    //示例
    GET /youdu_test/books/41286/_termvectors?fields=book_name
    
    sort脚本排序
    "sort": {
          "_script": {
            "type": "string",
            "script":{
              "inline": "doc['book_author']"
            },
            "order":"asc"
          }
      }
    
    修改mapping中的字段类型

    此处示例index为:youdu(已存在) youdu_test(未创建)
    以下请求的header都为:Content-Type:application/json

      1. 新建一个替代index(youdu_test)
      1. 获取youdu的mapping
    //query结构
    GET $domain+$port/{index}/{type}/_mapping
    //示例
    GET http://192.168.0.202:9200/youdu/books/_mapping
    

    截取{type}部分json留做后面建立youdu_test的mapping使用,如

    {
        "youdu": {
            "mappings": {
                "books": {
                    "properties": {
                        "auto_gather": {
                            "type": "keyword"
                        },
                        
                    }
                }
            }
        }
    }
    
      1. 创建youdu_test的mapping
        将上面截取的{type}部分json去传入和修改
    //query结构
    PUT $domain+$port/{index}/{type}/_mapping
    {
      //json串
    }
    //示例,更改auto_gather字段的类型为text
    PUT http://192.168.0.202:9200/youdu_test/books/_mapping
    {
        "books": {
                    "properties": {
                        "auto_gather": {
                            "type": "text"
                        },
                      
                    }
                }
    }
    
      1. 同步youdu的数据到youdu_test
    //query结构
    POST $domain+$port/_reindex
    //示例
    POST http://192.168.0.202:9200/_reindex
    {
     "source": {
         "index": "youdu"
     },
     "dest": {
         "index": "youdu_test"
     }
    }
    
    中文分词和拼音分词实例

    相关文章

      网友评论

        本文标题:ES中文分词拼音一箭双雕|yii2 es中文分词|拼音分词|ik

        本文链接:https://www.haomeiwen.com/subject/hvngkctx.html