0

所以,

在创建如下模板时,我一直在使用旧的 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

4

0 回答 0