2016-01-20 20 views
6

İlk olarak, ES'nin varsayılan analizörünü ayarlamak istedim ve başarısız oldu. Ve sonra diğer sorulara ve web sitelerine göre, bir dizinin varsayılan analizcisi ayarlamaya çalışıyorum.Ama bazı problemler de var.dizinin varsayılan analizörü

curl -XPUT localhost:9200/test

curl -XPUT localhost:9200/test/test/_mapping -d'{ 
"test":{ 
    "properties":{ 
    "name":{ 
     "type":"string", 
     "analyzer":"ik" 
    } 
    } 
} 
}' 

ve mesajı almak:

ben ik analizörü yapılandırmış ve bazı alanlar analizörü ayarlayabilirsiniz, burada benim için emirdir da

{"acknowledged":true} 

, dileğim gibi çalışır.

ama ben dizinin varsayılan analizörü ayarlamaya çalışırsanız:

curl -XPOST localhost:9200/test1?pretty -d '{                   "index":{ 
"analysis" : { 
      "analyzer" : { 
       "default" : { 
        "type" : "ik" 
       } 
      } 
     } 
    } 
}' 

hata mesajı alırsınız:

{ 
    "error" : { 
    "root_cause" : [ { 
     "type" : "index_creation_exception", 
     "reason" : "failed to create index" 
    } ], 
    "type" : "illegal_argument_exception", 
    "reason" : "no default analyzer configured" 
    }, 
    "status" : 400 
} 

Yani garip, değil mi? Bu sorun hakkında görüşlerinizi bekliyoruz. Teşekkürler! :)

cevap

5

Neredeyse oradasınız, yolunuzda sadece /_settings eksiksiniz. Bunun yerine böyle yapın. Ayrıca close the index first'a ihtiyacınız olduğunu ve ardından analizörleri güncelledikten sonra yeniden açtığınızı unutmayın. { "hatası": sizinki gibi

// close index 
curl -XPOST 'localhost:9200/test1/_close' 

          add this to the path 
            | 
            v 
curl -XPUT localhost:9200/test1/_settings?pretty -d '{                   "index":{ 
"analysis" : { 
      "analyzer" : { 
       "default" : { 
        "type" : "ik" 
       } 
      } 
     } 
    } 
}' 

// re-open index 
curl -XPOST 'localhost:9200/test1/_open' 
+0

Ben girdi komutu, daha sonra hata mesajı { "ROOT_CAUSE": [{ "type": "invalid_type_name_exception", "nedeni": "haritalama tipi adını [_settings] '_' ile " }], "tipi başlayamaz": "mapper_parsing_exception", "nedeni": "haritalama [_settings]", "caused_by": { "type":" invalid_type_name_exception ", " reason ":" eşleme türü adı [_settings], '_' " } } ile başlatılamıyor, "durum": 400 } ve belki girişine bana istiyorum: – iurti

+0

curl -XPOST localhost: 9200/test/oldukça -d '{ "ayarlar":? { "Analizi": { "analizörü": { "varsayılan": { "type": "ik" } } } } }}' ama – iurti

+0

Maalesef, benim hatam. Önce dizini, sonra komutu ve ardından dizini yeniden açmanız gerekir. Ayrıca "PUT" ve "POST" değilsiniz. Bu çalışacaktır. Ayrıca, “ik” analizörünün zaten mevcut olması gerektiğini unutmayın, aksi takdirde işe yaramayacaktır. – Val