使用elasticsearch和jcard json进行queringin

时间:2015-06-23 09:28:46

标签: json elasticsearch vcard

我有一个包含基于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"
                    }
                }
            }
    }
}'

任何指向正确映射或查询的指针都会有所帮助。

0 个答案:

没有答案