Text:

1.支持分词,全文检索,支持模糊查询,支持精确查询,不支持聚合,排序操作;
2.最大支持的字符长度无限制,适合大字段存储
3.将字段进行分词处理,然后再存入到es中;

使用场景:
    1.存储全文搜索数据,例如:文章内容、地址、代码块;
    2.默认结合standard analyzer(标准解析器)对文本进行分词、倒排索引;
    3.默认结合标准分析器进行词命中、词频相关度打分;

Keyword:

1.不进行分词,直接索引,支持模糊查询,支持精确查询,支持聚合,排序操作;
2.最大支持的字符长度UTF-8 32766个,可以通过设置ignore_above指定自持字段长度,超过给定长度后的数据将不被索引,无法通过term精确匹配检索返回结果;
3.默认字符长度256个;

使用场景:
    1.存储邮箱号码,url,name,title,手机号码;
    2.用于筛选数据(例如:select * from x where status = ‘open’)、排序、聚合;
    3.直接将完整的文本保存至倒排索引中;

对比后的选择:

text比keyword多出了分词处理,所以从内存占比与性能上来看,如果keyword满足业务场景并且业务场景中不需要分词,那么优先使用keyword,因为其内存占比更低,性能更优。 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐