我将ElasticSearch与MongoDB一起使用,并希望在我的Elasticsearch索引中搜索ObjectID。
我的MongoDB包含以下条目:
{ "_id" : ObjectId("54ca06664ceb6693d37de155"), "blabla" : "xxxyyy"}
我尝试创建自定义映射,例如:
curl -XPOST "http://localhost:9200/myIndex/myType/_mapping" -d'
{
"myType":{
"properties":{
"_all": {
"enabled": false
},
"_id": {
"type": "string",
"store": true,
"index": "analyzed"
},
"blabla": {
"type": "string",
"store": true,
"index": "analyzed"
}
}
}'
但是当我想用
检查我的映射时curl -XGET 'http://localhost:9200/_all/_mapping'
我无法看到_id映射。正在搜索" 54ca06664ceb6693d37de155"也不会返回任何结果。
出了什么问题?
答案 0 :(得分:0)
_id字段是Elasticsearch中的默认主键,如mongoDB。虽然您没有找到_id字段的映射,但您可以使用以下查询搜索_id字段。了解更多信息refer this link.
您可以在退货文件中找到_id字段:
{
"_index" : "website",
"_type" : "blog",
"_id" : "123",
"_version" : 1,
"found" : true,
"_source" : {
"title": "My first blog entry",
"text": "Just trying this out...",
"date": "2014/01/01"
}
}
QUERY 1:
{
"query": {
"terms": {
"_id": [
"VALUE1",
"VALUE2"
]
}
}
}
QUERY 2:
{
"query": {
"term": {
"_id": {
"value": "VALUE"
}
}
}
}