Перекрывается ли анализатор по умолчанию пользовательским анализатором в Elasticsearch?

Я хочу использовать собственный анализатор для одних полей и использовать анализатор по умолчанию для других, поэтому я написал так:

{
   "settings": {
       "analysis":{                                                                                                                                             
           "analyzer": {                                                    
               "default": {                                             
                   "type": "keyword"                                    
                },                                                     
                "my_lowercase":{                                       
                   "type": "custom",                                      
                   "tokenizer": "whitespace",                             
                   "filter":[ "lowercase"]                                
               }                                                        
            }           
        }                                                               
    },                                                                   
    "mappings":{                                                         
        "test_string":{                                                      
            "_all":{                                                     
                "enabled":false                                            
            },                                                           
            "properties":{                                               
                "title":{                                                  
                    "type":"string",                                         
                    "analyzer":"my_lowercase"                                
                },                                                         
                "content":{                                                
                    "type":"string",                                         
                    "analyzer":"my_lowercase"                                
                }                                                          
            }                                                              
        }                                                                
    }
}

Длина поля «content» больше 32766. Когда я писал, как указано выше ,, он возвращал такую ​​ошибку: Документ содержит хотя бы один огромный термин. Если я удалю анализатор по умолчанию, он работает нормально. Таким образом, кажется, что пользовательский анализатор перекрывается анализатором по умолчанию, а поля буксировки используют анализатор по умолчанию. Кто-нибудь знает причину? Большое спасибо.


person Lianshuai    schedule 05.09.2017    source источник
comment
Что не работает?   -  person MartinSchulze    schedule 05.09.2017


Ответы (1)


Ваши настройки неверны, вам не хватает раздела analysis

"settings": { 
  "analysis": {                 <--- add this                                                                                                                                            
   "analyzer": {                                                    
       "default": {                                             
           "type": "keyword"                                    
        },                                                     
        "my_lowercase":{                                       
           "type": "custom",                                      
           "tokenizer": "whitespace",                             
           "filter":[ "lowercase"]                                
       }                                                        
   }      
  }                                                         
},                                                                   
person Val    schedule 05.09.2017
comment
Я добавил анализ в свой код. Я просто забыл написать это, когда задал этот вопрос. Извините. - person Lianshuai; 05.09.2017
comment
Простите, я не понимаю. Я думаю, что раздел сопоставления - это то, как я индексирую данные. - person Lianshuai; 05.09.2017
comment
Данные индексируются следующим образом: {title: test, content: hello world hello world hello world,}. Это то, что вы хотите знать? - person Lianshuai; 05.09.2017
comment
Пожалуйста, покажите полную команду, которую вы используете ... используя curl, Sense или что-то еще - person Val; 05.09.2017
comment
Приношу свои извинения за то, что забыл рассказать вам. Я упростил структуру данных, когда задал вопрос. И я снова проверил сам сценарий и обнаружил, что со сценарием что-то не так. Я удалю вопрос. Большое тебе спасибо. - person Lianshuai; 08.09.2017