Elasticsearch Map case insensitive to not_analyzed documents

后端 未结 8 1610
别那么骄傲
别那么骄傲 2020-12-08 14:46

I have a type with following mapping

PUT /testindex
{
    \"mappings\" : {
        \"products\" : {
            \"properties\" : {
                \"category         


        
8条回答
  •  轮回少年
    2020-12-08 15:42

    To this scenarios, I suggest that you could combine lowercase filter and keyword tokenizer into your custom analyzer. And lowercase your search-input keywords.

    1.Create index with the analyzer combined with lowercase filter and keyword tokenizer

    curl -XPUT localhost:9200/test/ -d '
    {
      "settings":{
         "index":{
            "analysis":{
               "analyzer":{
                  "your_custom_analyzer":{
                     "tokenizer":"keyword",
                     "filter": ["lowercase"]
                  }
               }
            }
        }
    }'
    

    2.Put mappings and set the field properties with the analyzer

    curl -XPUT localhost:9200/test/_mappings/twitter -d '
    {
        "twitter": {
            "properties": {
                "content": {"type": "string", "analyzer": "your_custom_analyzer" }
            }
        }
    }'
    

    3.You could search what you want in wildcard query.

    curl -XPOST localhost:9200/test/twitter/ -d '{
    
        "query": {
            "wildcard": {"content": "**the words you want to search**"}
        }  
    }'
    

    Another way for search a filed in different way. I offser a suggestion for U was that using the multi_fields type.

    You could set the field in multi_field

    curl -XPUT localhost:9200/test/_mapping/twitter -d '
    {
        "properties": {
            "content": {
                "type": "multi_field",
                "fields": {
                    "default": {"type": "string"},
                    "search": {"type": "string", "analyzer": "your_custom_analyzer"}
                }
            }
        }
    }'
    

    So you could index data with above mappings properties. and finally search it in two way (default/your_custom_analyzer)

提交回复
热议问题