如何在elasticsearch中为mongo-connector生成的索引创建映射

时间:2015-01-05 09:25:32

标签: mongodb elasticsearch

官方文档说,我们可以为每个索引创建string类型的映射,以MongoDB数据库和集合名称命名为animals.kitten

我尝试将映射创建为:

$ curl -XPUT 'http://localhost:9200/animals.kitten/_mapping' -d '
{
    "animals.kitten" : {
        "properties" : {
            "name" : {"type" : "string", "store" : true }
        }
    }
}'

但它会将错误抛出:

{
   "error": "ActionRequestValidationException[Validation Failed: 1: mapping type is missing;]",
   "status": 500
}

我不知道我哪里错了。我尝试了不同的替代方案,但效果不佳。尽管elasticsearch为索引animals.kitten中的每个字段生成动态映射,但如果我可以手动插入映射,那将会很棒。

2 个答案:

答案 0 :(得分:1)

抱歉,对于迟到的回答,我找到了做映射的方法。映射的例子是:

    curl -XPUT "http://localhost:9200/animals.kitten/string/_mapping" -d'{
        "string": {
            "properties" : {
            "name" : {"type" : "string", "store" : true }
             }
         }
     }'

答案 1 :(得分:0)

您的索引名称丢失且您的类型名称不一致(缺少最后的“s”)。这有效:

curl -XPUT 'http://localhost:9200/myindex/animals.kittens/_mapping' -d '
{
  "animals.kittens" : {
    "properties" : {
        "name" : {"type" : "string", "store" : true }
    }
  }
}'

(你需要先创建索引)