Couchbase 文档映射到 elasticsearch

Couchbase documents mapping to elasticsearch

我正在尝试将数据从 couch base bucket 复制到 elasticsearch 索引 "test"。我已经为我的 "test index" 完成了以下设置。

"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"
    },

下面是我的 couch base 文档。

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

我的问题是,

  1. 当我将此文档复制到 elasticsearch 时,如何使用此沙发基础文档的设置和映射?

  2. couch base 传输插件默认将此文档映射到 "couchbaseDocument" 类型,elasticsearch 会自动映射此 document.How 我可以更改此行为吗?

请帮助我。非常感谢您。

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

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

DelimiterTypeSelector 将文档 ID 以分隔符(默认为“:”)分割,并使用第一个标记作为文档类型,这正是您想要的。一旦文档映射到正确的类型,ES 将使用您自动配置的映射。

查看 here 了解您可以使用的其他一些高级设置。特别是,您可能希望使用 couchbase.ignoreFailures 设置。