0

这一直让我发疯。我的数据中有一些数组,这是一个精简的版本:

{
"fullName": "Jane Doe",
"comments": [],
"tags": [
    "blah blah tag 1",
    "blah blah tag 1"
],
"contactInformation": {
    "attachments": [
        "some file 1",
        "some file 2",
        "some file 3"
    ]
}
}

好的,所以我在 elasticsearch 中的映射如下:

curl -XPOST localhost:9200/myindex -d '{
"settings" : {
    "number_of_shards" : 1
},
"mappings" : {
    "docs" : {
        "properties" : {
            “tags” : { "type" : "string", "index" : "not_analyzed" }
            “attachments” : { "type" : "string", "index" : "not_analyzed" }
        }
    }
}
}'

现在,如果我将这些显示为构面,则标签看起来很好,如下所示:

[ ] - 等等标签 1

[ ] - 等等标签 2

然而,附件被标记化了,我得到了每个单词的一个方面,即

[ ] - 一些

[ ] - 文件

[ ] - 1

我在想,因为附件属性位于contactInformation中,我的映射可能需要如下所示:“contactInformation.attachments”:{“type”:“string”,“index”:“not_analyzed”}

但这引发了一个错误,没想到这个点。

有任何想法吗?

4

1 回答 1

0

请参阅“复杂核心字段类型”文档(特别是标题为“内部对象映射”的部分)。

它应该看起来像这样:

"mappings" : {
  "docs" : {
    "properties" : {
      “tags” : { "type" : "string", "index" : "not_analyzed" },
      "contactInformation": {
        "type": "object",
        "properties": {
          “attachments” : { "type" : "string", "index" : "not_analyzed" }
        }
      }
    }
  }
}
于 2016-03-15T21:16:49.883 回答