在elasticsearch映射中,“index”属性对非字符串类型有什么作用?

时间:2014-09-08 14:52:55

标签: elasticsearch

在弹性搜索映射中,字符串的“index”属性确定字符串是否会被分解为标记并进行分析。 “index”属性对非字符串类型(如整数,浮点数,日期等)的设置是什么?

3 个答案:

答案 0 :(得分:0)

您可以将“index”设置为“no”以关闭按特定字段搜索的功能 - 该字段不会被编入索引。默认值为“not_analyzed”,它将按原样索引数据而不进行分析,以便您可以按该字段进行搜索。数字和日期不支持“已分析”:

  

其他简单类型 - 长,双,日期等 - 也接受   index参数,但唯一相关的值是no和not_analyzed,   因为他们的价值从未被分析过。

http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/mapping-intro.html

  

数字和日期

     

索引

     

如果不应将值编入索引,则设置为no。设置为禁用禁用   include_in_all。如果设置为no,则字段应为   存储在_source中,启用include_in_all,或将store设置为   这是有用的。

http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/mapping-core-types.html

答案 1 :(得分:0)

String类型的

“index”属性(来自es reference):

  

设置为分析要被索引的字段并在被搜索后进行搜索   使用分析器分解成令牌。 not_analyzed意味着它   仍然可以搜索,但不会通过任何分析过程或   分解成代币。并不意味着它根本不可搜索   (作为单个字段;它可能仍包含在_all中)。设置为   禁用include_in_all禁用。默认为分析。

其他类型:

  

如果不应将值编入索引,则设置为no。设置为no禁用include_in_all。如果设置为no,则字段应存储在_source中,启用include_in_all,或将store设置为true以使其有用。

答案 2 :(得分:0)

对于非字符串值,它会禁用该值的索引并禁用include_in_all。这意味着您将无法在搜索中使用该字段。

该值仍会存储,因此您可以指定要在搜索请求中返回的字段

{... "fields" : ["name", "age"] ...}

您可以阅读该值并在您的应用中使用它。 (如果你不将它从_source中排除,它也会被存储在那里)。