elasticsearch模板不在正确的字段上生成

时间:2016-05-20 08:53:23

标签: elasticsearch nest elasticsearch-net elasticsearch-template

所以,

我在创建模板时一直使用旧的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元素的新语法时,这不再起作用。当我使用以下模板进行术语聚合时,术语会被拆分而不会带来原始值。因此,如果该字段具有“测试字段”的值,我希望它将“测试字段”作为一个术语而不是“测试”,“一个”,“字段”作为单个术语。请注意,这是使用原始模板返回的内容。

"field_a": 
{
  "type": "string",
  "fields": 
  {
   "searchable": {
    "index": "analyzed",
    "type": "string"
   },
   "field_a": {
    "index": "not_analyzed",
    "type": "string"
   }
  }
 }

我尝试将“index”:“not_analyzed”移动到初始字段映射中,只是在“type”下,但是这给了我一个错误,“非法字段[index],只能在字段内指定字段”,当试图索引文件。

所以我的问题是,有没有办法让初始字段not_analyzed,然后有一个可搜索的附加字段?或者我是否必须更改所有内容以包含两个单独的字段,其中一个原始和一个可搜索的内容似乎有点奇怪,这是如何工作之前,请注意。

我正在使用

NEST:1.7.2 ES:1.5.2

0 个答案:

没有答案