2016-08-02 9 views
0

NodeJs用のmongoosasticプラグインを使用して、既存のコレクションのElasticSearchへのインデックスを作成しようとしています。この私のスキーマ:MongoDBとMongoosasticとのElasticSearchマッピング

const callCenterSchema = new mongoose.Schema({ 
    _owner : { type: mongoose.Schema.Types.ObjectId, ref: 'User', es_type: 'object' }, 
    ivrs: [{ 
     name: { 
      type: String, 
      es_type: 'string' 
     }, 
     ivrType: { 
      type: String, 
      default: 'mobile', 
      enum: ['mobile', 'website'], 
      es_type: 'string' 
     }, 
     submenu: { 
      type: [ CallCenterSubmenu.schema ], 
      es_type: 'nested', 
      es_include_in_parent: true 
     } 
    }] 
}); 

callCenterSchema.plugin(mongoosastic, { 
    esClient: require('tusla/lib/db/elastic').elastic, 
    populate: [ 
     { path: '_owner' } 
    ] 
}); 

let CallCenter = mongoose.model('CallCenter', callCenterSchema); 
CallCenter.synchronize() 

CallCenter.createMapping(function(err, mapping) { 
    if (err) { 
    console.error('Error creating mapping for CallCenters', err.message); 
    } 
}); 


module.exports = CallCenter; 

私のサブメニュースキーマは、このようなものです:

const callcenterSubmenuSchema = new mongoose.Schema({ 
    name: String, 
    key: String, 
    waitTime: { 
     type: Number 
    }, 
    waitSuffix: String, 
    numberOrLink: String, 
    auth: { 
     canBeSkipped: String, 
     fields: { 
      type: Array, 
      es_type: 'object' 
     }, 
     verification: String, 
     regExp: String 
    }, 
    submenu: [this] 
}, { _id: false }); 

は、私は、この特定のエラーを得続けるが、それを解決することができませんでした。あなたが私を助けることができれば感謝します。

ありがとうございます! [mapper_parsing_exception] [混合]入力されていませんハンドラはフィールド上で宣言されていないCallCentersのためのマッピングを作成

エラー[サブメニュー]

+0

CallCenterSubmenu.schemaとは何ですか? – alpert

+0

私は最初のスキーマの下にサブメニュースキーマを与えました。 – Yagiz

答えて

1

私は問題はそのラインだと思います。エラーメッセージで

type: [ CallCenterSubmenu.schema ] 

それは言います:私はないですよう

No handler for type [mixed] declared on field [submenu] 

ですからfixed(またはelasticsearchとしてsubmenuフィールドの種類を指定しようとしているが、それを推論します確かに)私が知っているようにタイプはmixedではありません。だからESはその例外を発生させます。有効なタイプを指定する必要があります。https://www.elastic.co/guide/en/elasticsearch/reference/master/mapping-types.html

関連する問題