Text

简述

该字段用于索引全文文本,例如电子邮件的正文或产品的描述。 对这些字段进行analyzed ,即通过分析器将其转换成索引之前的各个术语列表。 分析过程允许Elasticsearch搜索每个全文本字段中的单个单词。 文本字段不用于排序,很少用于聚合(尽管重要的术语聚合是一个显着的例外)。

如果您需要索引结构化内容(如电子邮件地址,主机名,状态代码或标签),则可能您应该使用keyword字段。 对于代码或标签,您也可能应该使用keyword字段。

示例

以下是文本字段的映射示例:

PUT my_index
{
  "mappings": {
    "my_type": {
      "properties": {
        "full_name": {
          "type":  "text"
        }
      }
    }
  }
}

有时,同时具有全文( text )和关键字( keyword )版本是有帮助的:一个用于全文本搜索,另一个用于聚合和排序。 这可以通过多字段实现。

参数

text字段接受以下参数:

| analyzer | 分析器应用于analyzed字符串字段,无论是在索引时间还是在搜索时间(除非被search_analyzer )。 默认为默认索引分析器或standard分析器。 | | boost | 映射字段级查询时间提升。 接受一个浮点数,默认为1.0 。 | | eager_global_ordinals | 是否应该全新加载全局序号? truefalse (默认)。 对于经常用于(重要)术语聚合的字段,启用此功能是一个好主意。 | | fielddata | 是否可以使用内存中的字段数据进行排序,聚合或脚本编写? truefalse (默认)。 | | fielddata_frequency_filter | 此为高级设置,允许在fielddata启用时决定哪些值加载到内存中。 默认情况下,所有值都被加载。 | | fields | 多字段允许以多种方式将相同的字符串值索引到不同的目的,例如用于搜索的一个字段和用于排序和聚合的多字段,或由不同分析器分析的相同字符串值。 | | include_in_all | 字段值是否应包含在[_all](https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-all-field.html)字段中? 接受truefalse 。如果index设置为no ,或者如果父object字段将include_in_all,默认设置为false。 否则默认为true 。 | | index | 应该可以搜索该字段吗? 接受true (默认)或false 。 | | index_options | 索引中应存储哪些信息,以便搜索和突出显示。 默认为positions 。 | | norms | 在评分查询时是否应考虑字段长度。 接受true (默认)或false 。 | | position_increment_gap | 应该在字符串数组的每个元素之间插入的假项目位置的数量。 默认为在分析器上配置的position_increment_gap ,默认为100 。 100被选中,因为它阻止了匹配术语与字段值之间的合理大小的间隔(小于100)的短语查询。 | | store | 字段值是否应与_source字段分开存储和检索。 接受truefalse (默认)。 | | search_analyzer | analyzer应在搜索时使用在analyzed领域。 默认为analyzer设置。 | | search_quote_analyzer | 在遇到短语时应在搜索时使用的分析器。 默认为search_analyzer设置。 | | similarity | 应该使用哪种评分算法或_相似度_ 。 默认为BM25 。 | | term_vector | 是否应为analyzed字段存储术语向量。 默认为no 。 |

从2.x导入的索引不支持text 。 相反,他们会尝试将text降级为string 。 这使您可以将现有映射与旧版映射进行合并。 在升级到6.x之前,必须重新生成长命索引,但映射降级可让您有机会按照自己的时间表进行安排。