2014-11-28 7 views
5

ayrıştırma sonra MapperParsingException Kök tipi eşleme boş değil ben ES 1.3.4 benim yerel örneği üzerinde bir Nehri ve JDBCElasticSearch PutMapping API: Bu nehir iyi çalışıyor ve ES veri alıyor olmalıdır

MySql 1.3.4.4 için. Sorun Alanımdan birinin bir metin alanı olduğunu ve içinde boşlukları olduğunu düşünüyorum. Örneğin 'Gerçek Zamanlı Hesap Makinesi'. ES, 'Gerçek Zamanlı Hesaplama' yerine 'gerçek', 'zaman' ve 'hesaplayıcı' olarak dizine ekliyor.

{ 
    "sale_test": { 
     "properties": { 
      "Client": { 
       "index": "not_analyzed", 
       "type": "string" 
      }, 
      "OfferRGU": { 
       "type": "long" 
      }, 
      "SaleDate": { 
       "format": "dateOptionalTime", 
       "type": "date" 
      }, 
      "State": { 
       "type": "string" 
      } 
     } 
    } 
} 

ve Command: Bu yüzden aşağıda kullanarak eşleme oluşturma

JSON söz

curl -XPUT http://localhost:9200/my_index/_mapping/my_type 

Ama aşağıda belirtilen hatayı alıyorum:

> {"error":"MapperParsingException[Root type mapping not empty after 
> parsing! Remaining fields: [sale_test : 
> {properties={Client={type=string, index=not_analyzed}, 
> OfferRGU={type=long}, SaleDate={type=date, format=dateOptionalTime}, 
> State={type=string}}}]]","status":400} 

ben deneyin Aşağıdaki komutu kullanarak mevcut haritalamayı görüntüleyin:

Yardımlarınız için {}

Teşekkür: 210

curl -XGET http://localhost:9200/dgses/sale_test_river/_mapping 

Sadece bu olsun.

cevap

7

Tipin API tip

curl -XPUT http://localhost:9200/my_index/_mapping/my_type 

o zaman JSON mesajında ​​sale_test olur my_type dediğimiz, tutarlı değil. senin sorunu çözecektir tutarlı türü olması

:

curl -XPUT http://localhost:9200/my_index/_mapping/sale_test -d ' 
    { 
    "sale_test": { 
     "properties": { 
     "Client": {"type": "string", "index": "not_analyzed" }, 
     "OfferRGU": { "type": "long" }, 
     "SaleDate": { "type": "date", "format": "dateOptionalTime" }, 
     "State": { "type": "string" } 
     } 
     } 
    }' 
İşte

Her ikisi de varsa bir yeni endeks ve yeni tip:

curl -XGET http://localhost:9200/dgses/sale_test_river/_mapping 

endeksi Düzeltme ve tür bana verir:

curl -XGET http://localhost:9200/my_index/sale_test/_mapping?pretty 
{ 
    "myindex" : { 
    "mappings" : { 
     "sale_test" : { 
     "properties" : { 
      "Client" : { 
      "type" : "string", 
      "index" : "not_analyzed" 
      }, 
      "OfferRGU" : { 
      "type" : "long" 
      }, 
      "SaleDate" : { 
      "type" : "date", 
      "format" : "dateOptionalTime" 
      }, 
      "State" : { 
      "type" : "string" 
      } 
     } 
     } 
    } 
    } 
} 
+1

Teşekkürler. Bu yazı yazıyordu. Eşleştirmeyi aldım ve Elastic Search belgelerini okuduktan sonra, zaten oluşturulmuş bir dizin için eşleştirmeyi güncelleyemeyeceğimizi fark ettim. Öncelikle önceki haritalamayı silmemiz ve daha sonra bu dizin için yeni harita oluşturmamız gerekiyor. Etrafında başka bir yolu varsa lütfen paylaşın. Teşekkürler. –

İlgili konular