1、keyword 类型
keyword 类型:存储数据时候,不会分词建立索引,支持模糊、支持精确匹配;支持聚合、排序操作。
keyword 类型的最大支持的长度为——32766个UTF-8类型的字符,可以通过设置 ignore_above 指定自持字符长度,超过给定长度后的数据将不被索引,无法通过 term 精确匹配检索返回结果。
使用场景: 存储邮箱号码、url、name、title,手机号码、主机名、状态码、邮政编码、标签、年龄、性别等数据。 用于筛选数据(例如: select * from x where status='open')、排序、聚合(统计))。 直接将完整的文本保存到倒排索引中。
2、text 类型
text 类型:存储数据时候,会自动分词,并生成索引,支持全文检索、支持模糊、精确查询;不支持聚合和排序操作。
text 类型的最大支持的字符长度无限制,适合大字段存储。
使用场景: 存储全文搜索数据,例如:邮箱内容、地址、代码块、博客文章内容等。
默认结合 standard analyzer(标准解析器)对文本进行分词、倒排索引。 默认结合标准分析器进行词命中、词频相关度打分。
所以创建索引时,当字段需要进行排序、分组、聚合等操作时,需要使用 keyword 类型。