Невозможно обновить индекс в elassandra
Я очень плохо знаком с elassandra и столкнулся с проблемой при попытке обновить индекс, который я создал ранее. Я изначально создал индекс, как показано ниже
curl -XPUT 'http://xxx.xx.xx.xxx:xxxx/yesanoa?pretty' -H 'Content-Type:
application/json' -d'
{
"settings": {
"index.mapping.ignore_malformed": true,
"analysis": {
"normalizer": {
"yesanoa_norm": {
"type": "custom",
"char_filter": [],
"filter": ["lowercase", "asciifolding"]
}
}
}
},
"mappings": {
"movies": {"discover" : ".*","properties" : {"title" : {
"type" : "text", "normalizer": "yesanoa_norm", "index" :
"analyzed"},"site_review" : {
"type" : "text", "normalizer": "yesanoa_norm", "index" :
"analyzed"}}}}}'
И я пытаюсь обновить это, как показано ниже,
curl -XPUT 'http://xxx.xx.xx.xxx:xxxx/yesanoa/genre' -d'{
"mappings": {
"genre": {"discover" : ".*","properties" : {"title" : {
"type" : "text", "normalizer": "yesanoa_norm", "index" :
"analyzed"}}}}}'
Я получаю следующую ошибку
"Не найден обработчик для uri [/yesanoa/genre] и метода [PUT][root@dbcasyn elassandra-5.5.0.4]"
Я попытался перестроить индекс с помощью параметра nodetool. Но ничего не сработало.
Пожалуйста, помогите мне, ребята, в этом.
1 ответ
Если у вас есть существующий индекс и вы хотите добавить новый тип (до Elaticsearch/Elassandra v5), вы используете следующий синтаксис:
PUT anIndex/_mapping/aType
{
"properties": {
"aProperty": {
"type": "text"
}
}
}
См. Документацию по эластичному поиску Put Mapping.
РЕДАКТИРОВАТЬ: Кстати, обновление отображения не поддерживает discovery
вариант. Вы должны сделать это явно.