所以,
在创建如下模板时,我一直在使用旧的 multi_field 类型。
"field_a":
{
"type": "multi_field",
"fields":
{
"searchable": {
"index": "analyzed",
"type": "string"
},
"field_a": {
"index": "not_analyzed",
"type": "string"
}
}
}
这很好用,查询时我可以对“field_a”进行术语聚合,而不必记住放置“field_a.raw”或类似的东西。
但是,当我将其更改为仅使用 fields 元素的新语法时,它不再起作用。当我使用下面的模板进行术语聚合时,术语被拆分而不是原始值。因此,如果该字段具有“测试字段”的值,我希望它将“测试字段”作为一个术语而不是“测试”、“a”、“字段”作为单独的术语返回。请注意,这是使用原始模板返回的内容。
"field_a":
{
"type": "string",
"fields":
{
"searchable": {
"index": "analyzed",
"type": "string"
},
"field_a": {
"index": "not_analyzed",
"type": "string"
}
}
}
我尝试将“索引”:“not_analyzed”移动到初始字段映射中,就在“类型”下但是这给了我一个错误,“非法字段[索引],只能在字段内指定字段”,当尝试索引时文件。
所以我的问题是,有没有一种方法可以让初始字段 not_analyzed 然后有一个可搜索的附加字段?或者我是否必须更改所有内容以包括两个单独的字段,一个是原始字段,一个是可搜索字段,这在你之前是如何工作的似乎有点奇怪。
我在用
巢:1.7.2 ES:1.5.2