我有一个包含基于JSON Jcard Mapping(https://tools.ietf.org/html/rfc7095的vcards的数据集)问题是 我想搜索' fn'只有字段。
vcard数据具有以下格式。
["vcard",
[
["version", {}, "text", "4.0"],
["fn", {}, "text", "John Doe"],
["gender", {}, "text", "M"],
["categories", {}, "text", "computers", "cameras"],
...
]
]
我正在创建像这样的vcard文档
> curl -X POST localhost:9200/vcards/id1 -d '{
"id":"id1",
"vcardArray" : ["vcard",
[
["version", {}, "text", "4.0"],
["fn", {}, "text", "John Doe"],
["gender", {}, "text", "M"]
]
],
"status":["registered"]
}'
通常您会创建一个特定的映射,因此在分析文档时会创建一个新索引并进行搜索 fn字段看起来像这样......
curl -v -X POST http://localhost:9200/vcards/_search -d '{ "query" :
{ "bool" : { "must": { "match" : {
"vcardArray.vcard.fn" :
{ "query" : "Rik Ribbers" , "type" : "phrase" }
} } } }
}'
潜在的映射看起来像这样,但是这个映射不起作用
> curl -X PUT http://localhost:9200/vcards -d '
{
"mappings": {
"vcardArray" : {
"type" : "nested",
"properties" : {
"vcard" : {
"type" : "index",
"index" : "not_analyzed"
}
}
}
}
}'
任何指向正确映射或查询的指针都会有所帮助。