我正在尝试将数据从沙发基础桶复制到弹性搜索索引"测试"。我已经为我的"测试索引做了以下设置"。
"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"的映射。在下面。
"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",}
我的问题是,
当我将此文档复制到elasticsearch时,如何使用此设置并映射此沙发基础文档?
沙发基地传输插件默认将此文档映射到" couchbaseDocument" type和elasticsearch自动映射此文档。如何更改此行为?
请帮帮我。非常感谢你提前。
答案 0 :(得分:1)
要将所有“profile:xxx”文档映射到ES中的“profile”类型,您只需在插件配置中添加类型设置即可。在您的情况下,将以下内容添加到每个ES节点上的elasticsearch.yml配置文件中:
couchbase.typeSelector: org.elasticsearch.transport.couchbase.capi.DelimiterTypeSelector
DelimiterTypeSelector
通过分隔符(默认情况下为':')拆分文档ID,并使用第一个标记作为文档类型,这正是您想要的。将文档映射到正确的类型后,ES将使用您自动配置的映射。
查看here以了解您可以使用的其他一些高级设置。特别是,您可能希望使用couchbase.ignoreFailures
设置。