Elasticsearch:keyword类型和text类型的区别

这篇具有很好参考价值的文章主要介绍了Elasticsearch:keyword类型和text类型的区别。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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,因为其内存占比更低,性能更优。 文章来源地址https://www.toymoban.com/news/detail-494976.html

到了这里,关于Elasticsearch:keyword类型和text类型的区别的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ES中type和keyword两个数据类型的区别

    前言 这是我在这个网站整理的笔记,关注我,接下来还会持续更新。 作者:神的孩子都在歌唱 参考文章: https://segmentfault.com/q/1010000017312707 ES数据类型:type与keyword :https://blog.csdn.net/ywb201314/article/details/112667516 数据类型 简单的类型: text、keyword、date、long、double、boolean和i

    2024年02月07日
    浏览(34)
  • laravel如何使用scout+elasticsearch搜索,并支持IK分词

    本扩展包支持IK分词设置。 在按下文操作前请先阅读 laravel scout 全文搜索文档 安装 您可以通过composer安装软件包 wannanbigpig/laravel-scout-elastic: Laravel 会自动注册驱动服务提供者。 Elasticsearch 配置 安装完成后,您应该使用vendor:publish Artisan命令发布Scout配置文件。该命令将把scou

    2024年02月06日
    浏览(74)
  • 解决Elasticsearch的Text类型的字段参与聚合和排序

    text字段类型用于全文内容,例如电子邮件正文或产品说明,并且es会通过分析器对字符串进行分词,可以在全文检索中搜索单独的单词。文本字段最适合非结构化但可读的内容并且不用于排序,也很少用于聚合 keyword主要用于结构化内容的字段,并且总是会有相同值的字段。

    2024年02月11日
    浏览(36)
  • es中的match、term、text、keyword、bool

    总结一下es中的match、term、text、keyword、bool等。比如我想搜索一辆“红色奥迪车”: match:在匹配时会对所查找的进行分词,然后按分词匹配查找,用于模糊查询。结果会将包含“红色”或“奥迪”的车都找出来。 term:对进行查找,用于精确查找。只有名

    2024年02月11日
    浏览(35)
  • es字段查询加keyword和不加keyword的区别

    在ES(Elasticsearch)中,查询字段名后面加上\\\"keyword\\\"和不加\\\"keyword\\\"有着不同的含义和用途。 当字段名后面加上\\\"keyword\\\"时, 表示该字段是一个keyword类型的字段。Keyword类型的字段会将文本作为一个整体进行索引和搜索,不会进行分词 。这意味着,如果你想要精确匹配某个特定的

    2024年02月10日
    浏览(36)
  • 【Elasticsearch学习笔记二】es的Mapping字段映射、Mapping字段常用类型、Mapping映射的创建、查看和更新、es数据迁移、ik分词器

    目录 1、Mapping字段映射概述 2、Mapping字段常用类型 3、映射中对时间类型详解 1)采取自动映射器来映射 2)手工映射提前指定日期类型 4、ES的keyword的属性ignore_above 5、Mapping映射的查看和创建 1)查看mapping信息:GET 索引名/_mapping 2)创建映射:PUT /索引名 3) 查看所有索引映

    2024年01月20日
    浏览(51)
  • Elasticsearch中object类型与nested类型以及数组之间的区别

    0、一般情况下用object 类型来查es中为json对象的字段数据,用nested来查es中为JsonArray数组类型的字段数据。 1、默认情况下ES会把JSON对象直接映射为object类型,只有手动设置才会映射为nested类型 2、object类型可以直接使用普通的逗号(.)查询,比如 3、nested类型的查询需要使用

    2024年01月22日
    浏览(56)
  • Elasticsearch keyword 中的 ignore_above配置项

    关于es mapping的keyword ignore_above配置项的解释如下: Do not index any string longer than this value. Defaults to  2147483647  so that all values would be accepted. 不会索引大于ignore_above配置值的数据,默认值 2147483647字符。注意:动态mappings中自动为256。 Strings longer than the  ignore_above  setting will not

    2024年02月07日
    浏览(28)
  • dede:channel标签支持调用子栏目描述description及关键词keywords的办法

    dede:channel标签不支持调用子栏目的及栏目描述,有些时候我们需要用户,需要简单的修改一下文件,如下: includetaglibchannel.lib.php文件第86行(注意sql语句有多个,最好是都替换下) 在后面添加,keywords,description,成如下 在模板中(举例,根据自己的代码灵活使用):

    2024年02月02日
    浏览(39)
  • es自定义分词器支持数字字母分词,中文分词器jieba支持添加禁用词和扩展词典

    自定义分析器,分词器 所有字段检索 高亮搜索 分词测试 GET /test_index/_analyze jieba中文分词支持添加禁用词和扩展词库功能 创建索引:PUT http://xxxx:9200/test_index 分词测试: GET http://xxxxxx:9200/test_index/_analyze

    2024年02月11日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包