• elasticsearch查询时不区分大小写


    Elastic 默认是区分大小写查询的,比如:

    {
      "foo": "BÀR"
    }

    查询的时候 通过“bar”是查询不到的,需要在

    "settings": {
    
        "analysis": { 
          "normalizer": { 
            "my_normalizer": { 
              "type": "custom", 
              "filter": ["lowercase", "asciifolding"] 
            } 
          } 
        } 
      },   
       "mappings": { 
        "type": { 
          "properties": { 
            "foo": { 
              "type": "keyword", 
              "normalizer": "my_normalizer" 
            } 
          } 
        } 
      } 

    案例:

    PUT /products
    {
      "settings": {     
        "analysis": { 
          "normalizer": { 
            "my_normalizer": { 
              "type": "custom", 
              "filter": ["lowercase", "asciifolding"] 
            } 
          } 
        } 
      }
    }
    
    POST /products/doc/_mapping
    {
      "_source": {"enabled": true},
      "dynamic": true,
      "properties" : {
        "id" : {"type" : "text","fields": {"raw": {"type": "keyword","ignore_above": 256}}},
        "hash" : {"type" : "text","fields": {"raw": {"type": "keyword","ignore_above": 256}}},
        "name" : {"type" : "keyword","doc_values":true,"normalizer": "my_normalizer"},
        "type" : {"type" : "keyword","doc_values":true},
        "fileids": {"type": "text","fields": {"raw": {"type": "keyword","ignore_above": 256}}},
        "createTime": {"type": "date"},
        "updateTime": {"type": "date"},
        "info" : {
          "properties":{              
                "id":{ "type":"text","fields": {"raw": {"type": "keyword","ignore_above": 256}}},
                "label":{"type":"keyword","doc_values":true,"normalizer": "my_normalizer"},
                "format":{ "type":"keyword","doc_values":true,"normalizer": "my_normalizer"},
                "value" : {"type" : "text","fields": {"raw": {"type": "keyword","ignore_above": 256}}}
         }
       }
     } 
    }
    View Code

    这样就可以解决大小写的问题。

    ES 6.0 官网资料:https://www.elastic.co/guide/en/elasticsearch/reference/6.0/normalizer.html

  • 相关阅读:
    主流开源深度学习框架对比分析
    机器学习资源汇总----来自于tensorflow中文社区
    Caffe fine-tuning 微调网络
    最牛逼的开源机器学习框架,你知道几个
    基于OpenCL的深度学习工具:AMD MLP及其使用详解
    写作是这个时代最好的自我投资
    nanoporetech/nanonet
    nanonets
    有道添加词典
    一道算法
  • 原文地址:https://www.cnblogs.com/chong-zuo3322/p/14036861.html
Copyright © 2020-2023  润新知