2016-02-04 114 views
0

我想从沙发基础桶复制数据到elasticsearch索引“测试”。我已经完成了我的“测试索引”的以下设置。Couchbase文档映射到elasticsearch

"settings": { 
"analysis": { 
    "analyzer": { 
    "my_analyzer":{ 
    "type":"custom", 
    "tokenizer" : "standard", 
    "filter" : ["standard", "lowercase","asciifolding","my_stemmer","autocomplete","my_stop","my_synonym_filter"] 
    } 
    }, 
    "filter": { 
    "my_stemmer":{ 
     "type":"stemmer", 
     "name":"english" 
    }, 
    "autocomplete":{ 
     "type":"edge_ngram", 
     "min_gram":1, 
     "max_gram":20 
    }, 
    "my_stop":{ 
     "type":"stop", 
     "stopwords":"_english_" 
    }, 
    "my_synonym_filter":{ 
     "type":"synonym", 
     "synonyms": [ 
     "united states,u s a,united states of     america=>usa" 
     ] 
    } 
    } 
} 

我有类型“配置文件”的映射如下。

"profile":{ 
    "properties": { 
    "name":{ 
     "type": "string", 
     "index_analyzer": "my_analyzer", 
     "search_analyzer": "english" 
    }, 
    "title":{ 
     "type": "string", 
     "index_analyzer": "my_analyzer", 
     "search_analyzer": "english" 
    }, 
    "description":{ 
     "type": "string", 
     "search_analyzer": "english", 
     "index_analyzer": "my_analyzer" 
    }, 

我的沙发基础文档如下。

{ 
    "name": "xxxx", 
    "title": "junior android developer", 
    "description": "I am developing new android applications",} 

我的问题是,

  1. 当我复制这个文件elasticsearch,我怎么可以使用此设置和映射这个沙发基础文件?

  2. 沙发底座传输插件默认情况下将此文档映射到“couchbaseDocument”类型,elasticsearch自动映射此文档。如何更改此行为?

请帮帮我。非常感谢你提前。

+0

couchbase文档ID - 'profile:1' –

回答

1

要在ES中将所有“profile:xxx”文档映射到“profile”类型,只需在插件配置中添加类型设置即可。在你的情况下,添加以下到elasticsearch.yml配置文件在每个ES的节点:

couchbase.typeSelector: org.elasticsearch.transport.couchbase.capi.DelimiterTypeSelector 

DelimiterTypeSelector由分隔符(“:”默认)拆分文件ID,并使用第一令牌文档类型,这正是你想要的。一旦文档映射到正确的类型,ES将使用您自动配置的映射。

请参阅here以了解您可以使用的其他一些高级设置。特别是,您可能想要使用couchbase.ignoreFailures设置。

+0

谢谢先生.. –