参考:https://blog.csdn.net/winterking3/article/details/108254346
https://www.cnblogs.com/shoufeng/p/11103913.html
https://blog.csdn.net/tclzsn7456/article/details/79956625

1、ES mapping之字符串 keyword

6.0后字符串不用string;改成text和keyword两种了,keyword是默认不分词,text是要分词

默认mapping结构一般是:
如果不设置mapping,ES默认把字符串设为text类型,并包含一个keyword子类型。

***这种结构保存字段会存两份索引(个人理解),首先第一个type text这个会进行分词建索引保存,再后面fields keyword会进行保存完整字符串附加

所以一个articleID过来的时候,会建立两次索引。一次是自己本身(articleID),是要分词的,分词后放入倒排索引;另一次是基于articleID.keyword,不分词,最多保留256字符,直接一个完整的字符串放入倒排索引中

term查询

1)直接term
(结构查不到,这是因为不加任何默认是text类型,这个字段保存是有分词,比如电影分成了电和影两个字保存)

{"query": {"bool": {"must": [{"term": {"channel": "电影"}}]}}
}

索引这里改成单字查询可以查询到


{"query": {"bool": {"must": [{"term": {"channel": "电"}}]}}
}
##或{"query": {"bool": {"must": [{"term": {"channel": "影"}}]}}
}

或者用match查询,这会进行分词后再查询


{"query": {"bool": {"must": [{"match": {"channel": "电影"}}]}}
}

2)具体全匹配查询term+keywod
这种查询会依据mapping里子类型keyword字段匹配,必须包含查询字符串不分词,相当于是查询的不分词前的原来字符串

{"query": {"bool": {"must": [{"term": {"channel.keyword": "电影"}}]}}
}

3、更改mapping keyword类型

直接去掉text那一级,吧text直接改成keyword,这种皆可以直接进行term查询进行不分词全匹配了,不用再加keyword

#设置channel为keyword
PUT pigg_user
{"mappings": {"properties": {"channel": {"type":  "keyword"},"age": {"type": "short"}}}
}

ES 索引mapping之keyword;term查询添加keyword查询;更改mapping keyword类型相关推荐

  1. 全文检索与ElasticSearch(一)——ES概述,正向索引与倒排索引,B+树,简单命令,Mapping

    ElasticSearch概述 ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful接口.它可以近乎实时的存储.检索数据:本身扩 ...

  2. Elasticsearch 入门(1):基本概念,安装教程,索引的创建,查询,删除,主键查询,修改,添加,聚合查询,条件查询

    Elasticsearch 入门 基本概念 The Elastic Stack, 包括 Elasticsearch.Kibana.Beats 和 Logstash(也称为 ELK Stack).能够安 ...

  3. 【Elasticsearch】将 term查询的 integer 字段改成 keyword之后, must 再改成 filter,就造成query_cache剧降

    本文为博主九师兄(QQ:541711153 欢迎来探讨技术)原创文章,未经允许博主不允许转载. 文章目录 1.概述 1.概述 请问一下,为什么 elasticsearch 不生成缓存?常见的原因有哪些 ...

  4. mysql 子查询添加索引_mysql – 你能索引子查询吗?

    我有一个表和一个如下所示的查询.有关工作示例,请参阅此 SQL Fiddle. SELECT o.property_B, SUM(o.score1), w.score FROM o INNER JOI ...

  5. Elasticsearch(三)——Es搜索(简单使用、全文查询、复合查询)、地理位置查询、特殊查询、聚合操作、桶聚合、管道聚合

    Elasticsearch(三)--Es搜索(简单使用.全文查询.复合查询).地理位置查询.特殊查询.聚合操作.桶聚合.管道聚合 一.Es搜索 这里的 Es 数据博主自己上网找的,为了练习 Es 搜索 ...

  6. elasticsearch 建立索引、增删改查 及简单查询和组合查询的学习笔记

    创建一个索引(数据库) PUT lagou # 索引名称 {"settings": {"index":{"number_of_shards" ...

  7. db2 删除索引_Elasticsearch必知必会的干货知识:ES索引操作技巧

    本篇侧重讲解说明如何对index进行创建.更改.迁移.查询配置信息等. 仅创建索引:PUT index PUT /index 添加字段设置(mappings):PUT index/_mapping/t ...

  8. 猿创征文|ES索引字段映射类型以及ES底层打分逻辑

    ES中映射可以分为动态映射和静态映射 动态映射: 在关系数据库中,需要事先创建数据库,然后在该数据库下创建数据表,并创建表字段.类型.长度.主键等,最后才能基于表插入数据.而Elasticsearch ...

  9. Elasticsearch教程-从入门到精通-ES索引迁移

    一.关于搜索引擎 各位知道,搜索程序一般由索引链及搜索组件组成. 索引链功能的实现需要按照几个独立的步骤依次完成:检索原始内容.根据原始内容来创建对应的文档.对创建的文档进行索引. 搜索组件用于接收用 ...

  10. es如何修改es索引字段类型 reindex

    今天因为上线之前,忘记提单先把es的索引新增的几个字段先建好,导致需求上线后,一些触发推送到es的数据,使得es自动根据数据类型创建索引字段类型,原本我打算增加的mapping字段是数组keyword ...

最新文章

  1. linux扩文件系统大小,调整卷大小后扩展 Linux 文件系统 - Amazon Elastic Compute Cloud...
  2. 基于SSM实现商户管理系统
  3. 路由跟踪工具0trace
  4. 轮播swiper配置选项
  5. reverseString
  6. 公文字体字号标准2020_公文格式的数字顺口溜(收藏)
  7. Git 企业中常用分支管理策略
  8. (一个)AngularJS获取贴纸Hello World
  9. 服务器用户配置文件在哪里找,管理远程桌面服务的用户配置文件
  10. 贪心---leetcode-376摆动序列
  11. 2021年甘肃省高考成绩一分一段表查询,2021年甘肃高考一分一段表公布查询时间 什么时候出...
  12. scala调用java库_从scala调用java时的java.lang.IllegalAccessError – solutions / workarounds?...
  13. POJ 1451 T9 (字典树好题)
  14. PYNQ实战笔记(二)————使用HLS构建加法器
  15. 老年手机计算机的按键怎么调至桌面,怎样设置一键回到桌面啊,就是这个图标(如图)...
  16. fft matlab代码,FFT的matlab程序代码
  17. Java SE 01 Java概述
  18. java求1到100素数的和_求解JAVA题:求出1~100中所有质数?,求一段java代码,题目是求1到100之间所有质数和?...
  19. Matlab 专题八——Matlab 图形用户界面设计
  20. IoTDB Can not establish connection

热门文章

  1. 给神经网络加入先验知识!
  2. vscode插件开发流程
  3. 损失 18 万,获刑 7 年,又又又是程序员删库!
  4. 华硕B85M系列主板 免编程器刷BIOS教程
  5. 基于Java Swing五子棋小游戏设计和实现
  6. Protel Dxp2004 创建库
  7. 确定有限状态自动机(deterministic finite automaton --> DFA)
  8. 嵌入式工程师必备开发工具
  9. python批量tif文件转化jpg文件格式
  10. excel合并计算机操作,Excel如何快速合并多个单元格的内容?