如何使用带有elasticsearch的{​​mongo连接器进行自定义映射

时间:2015-10-06 12:19:47

标签: mongodb elasticsearch

我想连接 mongodb elasticsearch 。我使用 mongo连接器连接它们。我按照以下指示链接设置==>

http://vi3k6i5.blogspot.in/2014/12/using-elastic-search-with-mongodb.html

我可以连接mongodb和elasticsearch。但默认情况下,mongo connector为mongodb的所有数据库在elasticsearch中创建了索引。

我想为我的一个数据库只创建一个索引,我想只插入选定的文档字段。例如:在mongo shell ==>

use hotels
db.restaurants.insert(
   {
      "address" : {
     "street" : "2 Avenue",
     "zipcode" : "10075",
     "building" : "1480",
     "coord" : [ -73.9557413, 40.7720266 ],
  },
  "borough" : "Manhattan",
  "cuisine" : "Italian",
  "grades" : [
     {
        "date" : ISODate("2014-10-01T00:00:00Z"),
        "grade" : "A",
        "score" : 11
     },
     {
        "date" : ISODate("2014-01-16T00:00:00Z"),
        "grade" : "B",
        "score" : 17
     }
  ],
  "name" : "Vella",
  "restaurant_id" : "41704620"
  }
)

这将创建数据库酒店收集餐馆。现在我想创建索引,我想在弹性搜索中只为该索引添加地址字段

以下是我尝试过的步骤,但这些步骤不起作用: 首先,我启动mongo连接器,如下所示:

Imomadmins-MacBook-Pro:~ jayant$ mongo-connector -m localhost:27017 -t       localhost:9200 -d elastic_doc_manager --oplog-ts oplogstatus.txt

Logging to mongo-connector.log.

然后从新的shell标签中,我发出了如下命令:

curl -XPUT 'http://localhost:9200/hotels.restaurants/'



curl -XPUT "http://localhost:9200/hotels.restaurants/string/_mapping" -    d'{
    "string": {
        "properties" : {
        "address" : {"type" : "string"}
         }
     }
 }'

但只有在名为 hotels.restaurants 的elasticsearch中创建了索引。我看不到索引 hotels.restaurants 的任何文件。

请建议我如何为 hotels.restaurants

添加文档

1 个答案:

答案 0 :(得分:3)

我得到了一个问题的答案,在启动mongo连接器时,我们可以指定集合名称和我们感兴趣的字段列表。请检查以下命令==>

$ mongo-connector -m localhost:27017  -t localhost:9200 -d elastic_doc_manager --oplog-ts oplogstatus.txt --namespace-set hotels.restaurants --fields address,grades,name