19、elasticsearch7.x使用term配合keyword进行搜索

author author     2023-03-09     226

关键词:

参考技术A

主要内容:使用term配合keyword进行搜索

根据用户ID、是否隐藏、帖子ID、发帖日期来搜索帖子

​查看映射

type=text,默认会设置两个field,一个是field本身,比如articleID,就是分词的;还有一个的话,就是field.keyword,articleID.keyword,默认不分词,会最多保留256个字符

constant_score的用处

当我们不关心检索词频率TF(Term Frequency)对搜索结果排序的影响时,可以使用constant_score将查询语句query或者过滤语句filter包装起来。

term filter/query:对搜索文本不分词,直接拿去倒排索引中匹配,你输入的是什么,就去匹配什么

没有搜到任何的信息,原因参见后面1.6节的分析,需要使用keyword避免分词查询。

articleID.keyword,是ES内置建立的field,当插入articleID的时候,会建立两次索引,一次是自己本身,是要分词的,分词后放入倒排索引;另外一次是基于articleID.keyword,不分词,保留最多256个字符

所以term filter,对text过滤,可以考虑使用内置的field.keyword来进行匹配。但是有个问题,默认就保留256个字符。所以尽可能还是自己去手动建立索引,指定type=keyword即可。

默认是analyzed的text类型的field,建立倒排索引的时候,就会对所有的articleID分词,分词以后,原本的articleID就没有了,只有分词后的各个word存在于倒排索引中。
term,是不对搜索文本分词的,XHDK-A-1293-#fJ3 会使用 XHDK-A-1293-#fJ3进行匹配。

但是articleID建立索引的时候, XHDK-A-1293-#fJ3 会分词为 xhdk,a,1293,fj3

将1.1中的示例数据插入进来

这次可以根据keyword正常查询到了

(1)term filter:根据exact value进行精确搜索,数字、boolean、date天然支持
(2)建索引时文本需要指定keyword,才能用term query
(3)term相当于SQL中的单个where条件

参考文章:

Elasticsearch--constant_score_大数据_u014431852的博客-CSDN博客 https://blog.csdn.net/u014431852/article/details/52802747

java+springboot操作elasticsearch7.x.x工具类resthighlevelclientutils(代码片段)

ElasticSearch创建索引,删除索引,判断index是否存在,根据id删除指定索引中的文档,根据id更新指定索引中的文档,根据id更新指定索引中的文档,根据某字段的k-v更新索引中的文档,添加文档手动指定i... 查看详情

docker安装elasticsearch7.x设置默认账户密码出错(代码片段)

根据网上的教程,当完成了Elasticsearch7.x安装后,会要求你用Docker命令登陆到master节点的容器执行以下命令来设置默认账户的密码。bin/elasticsearch-setup-passwordsinteractive以我的试验会得到以下报错,大致意思是抱怨连接不上这个URL。... 查看详情

springboot整合elasticsearch7.x及实战(代码片段)

此笔记内容为狂神说SpringBoot整合ElasticSearch部分目录一、SpringBoot整合1、创建工程2、导入依赖导入elasticsearch依赖提前导入fastjson、lombok3、创建并编写配置类4、创建并编写实体类5、测试索引的操作文档的操作二、ElasticSearch实战防... 查看详情

使用kibana操作elasticsearch7.x教程(代码片段)

由于elasticsearch7.x取消了type(类型的概念)对应数据库表的概念kibana的配置以及安装地址:https://www.cnblogs.com/TJ21/p/12642219.html添加一个索引PUT索引名"settings":"number_of_shards":1,"number_of_replicas":0创建映射字段analyzer:分词器  下... 查看详情

elasticsearch7.x进阶实战视频课上线

1、Elasticsearch7.X进阶实战大纲课程地址:Elasticsearch7.X进阶实战视频课10个大选题来源于实战业务场景的提炼、总结。Elasticsearch全貌认知Elasticsearch索引创建和搜索原理Elasticsearch集群规划及节点角色规划最佳实践Elasticsearch集群... 查看详情

elasticsearch7.x进阶实战视频课上线

1、Elasticsearch7.X进阶实战大纲课程地址:Elasticsearch7.X进阶实战视频课10个大选题来源于实战业务场景的提炼、总结。Elasticsearch全貌认知Elasticsearch索引创建和搜索原理Elasticsearch集群规划及节点角色规划最佳实践Elasticsearch集群... 查看详情

elasticsearch7.x进阶实战视频课上线

1、Elasticsearch7.X进阶实战大纲课程地址:Elasticsearch7.X进阶实战视频课10个大选题来源于实战业务场景的提炼、总结。Elasticsearch全貌认知Elasticsearch索引创建和搜索原理Elasticsearch集群规划及节点角色规划最佳实践Elasticsearch集群... 查看详情

elasticsearch7.x中文分词器ik使用,及词库的动态扩展(代码片段)

一、ik中文分词器上篇文章我们学习了ES集群分片和水平扩容,前面再使用的时候应该就会发现,在做match匹配时,默认会进行分词,但当查询内容是中文时,分词效果是一个字被认定了一个词,这显然不符... 查看详情

springboot+elasticsearch7.x+jpa配置多数据源

SpringBoot+ElasticSearch7.x+JPA配置多数据源这里分为测试环境配置和正式环境配置,大体相差无几ESTestConfig1@Configuration2@ConfigurationProperties(prefix="es-config")3@EnableElasticsearchRepositories(basePackages={"com.tingyu.cdssdat 查看详情

elasticsearch7.x和elasticsearch8.x学习记录

ElasticSearch7倒排索引数据写入时,建立关键字和主键的映射,查询时–>关键字–>主键–>对应文章分片因为ES是以检索为主的产物,为了便于查询,会将数据进行分片,例如:根据性别分片,当查询女... 查看详情

elasticsearch7.x

一、elasticsearch版本与jdk版本对应关系参考位置2020年3月27日更新elasticsearch安装及启动异常解决虚拟机使用net连接模式1DownloadandunzipthelatestElasticsearchdistribution2Runbin/elasticsearchonUnixorbinelasticsearch.batonWindows3Runcurl-XGEThttp://localhost:9200/官... 查看详情

elk学习002:elasticsearch7.x的安装及配置

下载地址:https://www.elastic.co/cn/downloads/elasticsearch下载对应需要的ES。我这边是Linux的系统。另外ES支持Docker方式启动。另外,ES7.x不需要本地JDK环境支持:ES5,安装需要JDK8以上ES6.5,安装需要JDK11以上ES7.2.1,内置了JDK12 查看详情

「日记」elasticsearch7.x新功能介绍

参考技术A说明:ElasticSearch7.X很多新功能主要基于lucene8.X新特性,故对于lucene8.X新特性不赘述。在6.1中已加入这个功能,但是默认是关闭的,在7.0中开始默认开启。若有两个节点,且其中一个节点上有一个索引的主分片,另一个... 查看详情

elasticsearch7.x聚合查询及elasticsearchresttemplate操作(代码片段)

一、创建测试索引创建索引结构,向ES服务发送PUT请求:http://127.0.0.1:9200/jh_test "settings":, "mappings": "properties": "name": "type":"text","fields&# 查看详情

elasticsearch7.x聚合查询及elasticsearchresttemplate操作(代码片段)

一、创建测试索引创建索引结构,向ES服务发送PUT请求:http://127.0.0.1:9200/jh_test "settings":, "mappings": "properties": "name": "type":"text","fields&# 查看详情

elasticsearch7.x文档基本操作(crud)(代码片段)

...行的开源搜索引擎,用于存储、搜索和分析数据。下面是Elasticsearch7.x版本的基本操作(CRUD):1、创建索引:PUT/index_name"settings":"number_of_shards":1,"number_of_replicas":02、查看索引:GET/index_name3、删除索引:DELETE/index_name4、创建文档:... 查看详情

重磅|elasticsearch7.x学习路线图

1、为什么要梳理学习路线图?在关注Elastic中文社区、QQ群、星球群的过程中,多多少少都会有一些基础问题冒出。而这些问题不复杂,多半都在官方文档中都有提及,稍稍复杂的在官方英文社区、中文社区都有过类似问题的讨... 查看详情

重磅|elasticsearch7.x学习路线图(代码片段)

Elasticsearch最少必要知识实战教程直播回放1、为什么要梳理学习路线图?在关注Elastic中文社区、QQ群、星球群的过程中,多多少少都会有一些基础问题冒出。而这些问题不复杂,多半都在官方文档中都有提及,稍... 查看详情