zoukankan      html  css  js  c++  java
  • Elasticsearch使用逗号分词

    因公司使用ES发现用MYSQL存放的字段中有一个带逗号的数据匹配不出来。在网站上找了好久,发现有一位同学写了一个带逗号的分析器,果然可以匹配出。做一下笔记,以备忘记。好记性不如烂笔头

    1:新建分析器

    curl -XPOST 'http://172.18.0.4:9200/demo/?pretty' -d '

    {

      "settings":

      {

        "analysis":

          {

            "analyzer":

              {

                "douhao":

                  {

                    "type":"pattern",

                    "pattern":","

                  }

              }

          }

      }

    }'

     

    2:将分析器mapping到新的字段上(旧的字段上是无法修改mapping),当然最好的办法是使用别名,可以零停机切换

    curl -XPOST 'http://172.18.0.4:9200/demo/_mapping/master?pretty' -d '

    {

      "properties":

      {

        "master_id":

        {

          "type":"string",

          "index":"not_analyzed"

        },

        "serve_regions":

        {

          "type":"string",

          "analyzer":"douhao",

          "search_analyzer":"douhao"

        }

      }

    }'

    3:同步MYSQL的数据到ES(或者手动添加两条数据)

    curl -PUT 'http://172.18.0.4:9200/demo/master/?pretty' -d '{"master_id":"123","serve_regions":"1,2,3"}'

    curl -PUT 'http://172.18.0.4:9200/demo/master/?pretty' -d '{"master_id":"321","serve_regions":"1"}'

    curl -PUT 'http://172.18.0.4:9200/demo/master/?pretty' -d '{"master_id":"231","serve_regions":"2,3"}'

     

    4:测试 http://172.18.0.4:9200/_plugin/head

     

    参考文档

      1:ES中如何使用逗号来分词

  • 相关阅读:
    元类,单例模式
    面向对象高阶
    类的三大特性---封装以及Property特性
    c# 中的string(神奇的string)
    c#中的equal和getHashCode
    linq中的Distinct的使用(附带IComparable和IComparer的复习和使用)
    flex布局完整示例
    flex布局中flex-basis的理解
    CSS两端对齐的效果;
    理解c#中扩展性代码
  • 原文地址:https://www.cnblogs.com/amuge/p/6906516.html
Copyright © 2011-2022 走看看