2016-07-22 50 views
1

只需elasticsearch把原始字段的字段

此查询

GET blabla/_search 
{ 
    "_source": "city.raw" 

} 

给出结果为零

内,但这样一条:

GET blabla/_search 
    { 
     "_source": "city" 

    } 

给数以百万计的文档。

为外地城市的映射是这样的:

"city": { 
      "type": "string", 
      "analyzer": "standard", 
      "fields": { 
       "raw": { 
       "type": "string", 
       "index": "not_analyzed" 
       } 
      } 
      }, 

你看到.raw是存在的。我是什么东错请

回答

3

city.raw字段未存储在_source它只是索引,以便您可以搜索它并执行聚合。

会发生什么事,当你索引的文档,如

{ "city": "New York" } 

  • city字段将包含两个标记newyork(即分析)
  • city.raw场将包含单个标记New York(即未分析)。

在你的第一个例子,你想从源中检索city.raw场,但没有这样的字段存在,因为它是在分析过程中产生的合成场。