这让我疯了。我的数据中有一些数组,这是一个精简的版本:
{
"fullName": "Jane Doe",
"comments": [],
"tags": [
"blah blah tag 1",
"blah blah tag 1"
],
"contactInformation": {
"attachments": [
"some file 1",
"some file 2",
"some file 3"
]
}
}
好的,我在弹性搜索中的映射如下:
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" }
}
}
}
}'
现在,如果我将这些标签显示为方面,标签就会显示正常,如下所示:
[] - blah blah tag 1
[] - blah blah tag 2
然而附件是标记化的,我得到每个单词的一个方面,即
[] - 一些
[] - 档案
[] - 1
我在想,因为附件属性存在于contactInformation中,我的映射可能需要如下所示: “contactInformation.attachments”:{“type”:“string”,“index”:“not_analyzed”}
但是这引发了一个错误,而不是期待这个点。
有什么想法吗?
答案 0 :(得分:0)
请参阅"Complex Core Field Types"文档(特别是标题为"Mapping for Inner Objects"的部分)。
看起来应该是这样的:
"mappings" : {
"docs" : {
"properties" : {
“tags” : { "type" : "string", "index" : "not_analyzed" },
"contactInformation": {
"type": "object",
"properties": {
“attachments” : { "type" : "string", "index" : "not_analyzed" }
}
}
}
}
}