Es接頭辞ブラーマッチングカスタムedge_ngram

1493 ワード

  • edge_ngramカスタムanalyzer、英語の符号化文字列に対して、大文字で小文字のfilterを回転して、上位10位は切断して、単語を区別しません
  • put /my_index
    {
        "settings": {
            "analysis": {
                "analyzer": {
                    "code_index_analyzer": {
                        "tokenizer": "code_index_tokenizer",
                        "filter": [
                            "lowercase"
                        ]
                    },
                    "code_search_analyzer": {
                        "tokenizer": "keyword",
                        "filter": [
                            "lowercase"
                        ]
                    }
                },
                "tokenizer": {
                    "code_index_tokenizer": {
                        "type": "edge_ngram",
                        "min_gram": 1,
                        "max_gram": 10
                    }
                }
            }
        }
    }
    
  • mappingフィールド設定
  • PUT /my_index/my_type/_mappings
    {
        "my_type": {
            "properties": {
                "name": {
                    "type":            "text",
                    "analyzer":  "code_index_analyzer", 
                    "search_analyzer": "code_search_analyzer" 
                }
            }
        }
    }
    
  • 索引別名https://www.elastic.co/guide/cn/elasticsearch/guide/current/index-aliases.html