• 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中如何使用逗号来分词

  • 相关阅读:
    Spring集成MyBatis
    UpdatePanel的简单用法(转)
    updatePanel导致JS失效的解决办法(转)
    sql面试题(学生表_课程表_成绩表_教师表)
    javascript深入理解js闭包
    T-SQL利用Case When Then多条件判断
    T-SQL排名函数
    DataTable字符串类型的数字,按照数字类型排序
    Sql 行转列问题总结
    行转列:SQL SERVER PIVOT与用法解释
  • 原文地址:https://www.cnblogs.com/amuge/p/6906516.html
Copyright © 2020-2023  润新知