023 elasticsearch查询数据 高亮 分页 中文分词器 field的数据类型

文章目录

    • 1查询的语法
    • 2查询全部数据
    • 3termQuery 关键词查询
    • 4QueryString查询,根据查询字符串查询
    • 5match查询,功能和query_string相同
    • 6multi_match查询
    • 7bool查询
    • 8高亮处理
    • 9查询结果分页
    • 10中文分词器
    • field的数据类型

1查询的语法

方法:post
url:http://localhost:9200/[/{blog}][/{type}]/_search
请求体:
json形式的查询语句

{"query":{"xxx"}
}

2查询全部数据

{"query":{"match_all":{}}
}

3termQuery 关键词查询

是所有查询中最基本的一个查询
根据关键词进行查询,如果关键词在索引中存在就有结果
如果关键词不存在就查询不到结果。ES不会再次对查询的内容进行分词处理
需要指定:

  1. 要查询的关键词
  2. 要查询的字段
{"query":{"term":{"title":"java"}}
}

默认使用的是standard分词器。处理英文根据空格进行分词处理。如果处理中文,是一个汉字一个关键词。

4QueryString查询,根据查询字符串查询

查询条件可以指定一个字符串,在查询之前,可以对查询条件进行分词处理,然后基于分词之后的结果再次查询

{"query":{"query_string":{"default_field":"title","query":"第二轮开售|摩拳擦掌,笑迎五一"}}
}

5match查询,功能和query_string相同

{"query":{"match":{"title":"第二轮开售|摩拳擦掌,笑迎五一"}}
}

6multi_match查询

可以指定在多个字段中查询

{"query":{"multi_match":{"query":"第二轮开售|摩拳擦掌,笑迎五一","fields":["title","content"]}}
}

7bool查询

  1. 组合条件查询
    逻辑关系:
    must:必须满足,相当于是AND
    should:应该满足,相当于OR
    must_not:必须不能满足,相当于NOT
    语法:
{"query":{"bool":{"must":[],"should":[],"must_not":[],"filter":[]}}
}

案例:

{"query":{"bool":{"must":[{"match":{"title":"apple"}},{"match":{"content":"apple"}}]}}
}
  1. filter过滤查询
    在bool查询的filter节点中可以包含多个查询条件,条件之间层层过滤
    也可以直接使用filter进行数据的查询。filter查询是不进行打分处理。查询性能高于query

     	相关度排序:SEO:搜索引擎优化。两个指标:TF:关键词在文章中出现的频率。TF越大相关度越高。DF:所有文档中关键词出现的频率。DF越大相关度越低。例如 and根据TF和DF计算出一个相关度的得分,得分越高相关度越高,文档根据相关度得分进行降序排列。
    
{"query":{"bool":{"filter":[{"match_all":{}},{"term":{"title":"喜"}},{"term":{"title":"金"}},{"term":{"title":"北"}}								]}}
}

8高亮处理

在查询结果中将查询的关键词左右两边分别加上成对的html标签。
高亮的处理在查询条件中指定。
{"query":{"bool":{"must":[{"match":{"title":"apple"}}]}},"highlight":{"fields":{"title":{}},"pre_tags":"<em>","post_tags":"</em>"}
}

9查询结果分页

在query查询条件中增加两个属性
from:起始的行号,从0开始
size:每页显示的记录数量

{"query":{"multi_match":{"query":"苹果正开发","fields":["title","content"]}},"highlight": {"fields": {"title": {},"content": {}},"pre_tags": "<em>","post_tags": "</em>"},"from": 10,"size": 5
}

10中文分词器

Ik-analyzer
https://github.com/medcl/elasticsearch-analysis-ik/releases

mkdir ik-analyzer
sudo yum install unzip
unzip elasticsearch-analysis-ik-7.10.2.zip -d ik-analyzer
cp ik-analyzer/ elasticsearch-7.10.2/plugins/ -R
方法:POST
url:http://localhost:9200/_analyze
方法体:{"analyzer":"standard","text":"and productivity has made it the world's most popular Java framework."}IK一旦安装之后有两个分词算法:ik_smart:快速分词,速度快,粒度比较粗。ik_max_word:最大数量分词,速度慢,粒度细。
索引一旦创建完毕不能修改分词器的如果使用中文分词,应该在创建索引时,设置mapping的过程中指定使用中文分词器。
PUT /blog1
{	"settings":{"number_of_shards":5,"number_of_replicas":1},"mappings":{"properties":{"id":{"type":"long"},"title":{"type":"text","analyzer":"ik_max_word","store":"true"},"mobile":{"type":"keyword","store":"true"},"comment":{"type":"text","analyzer":"ik_max_word","store":"true"},"content":{"type":"text","analyzer":"ik_max_word","store":"true"}			}}
}
POST /blog1/_bulk

field的数据类型

数值类型:intlongfloatdouble
字符串:text:需要分词的字段必须使用text,只有text类型才能支持分词器。keyword:不需要对字段的内容进行分词处理时,可以使用keyword数据类型。例如:身份证号、手机号、订单号等。
日期:data字段的三个属性:是否分词:是否是text类型。例如文章的title、content都需要分词。是否索引:是否对field的内容进行索引。如果text数据类型一定需要创建索引,分词之后一定要创建索引。不分词也可以把field的内容添加到索引中,使用keyword数据类型。也可以不索引field中的内容。例如文件的path,不需要分词,不需要索引,只需要存储即可。"path":{"type":"keyword","index":false,"store":true}是否存储定义field时,store属性是否是true。如果是true那么就存储,false不存储。无论是否存储,不影响分词、创建索引、搜索。影响的范围就是是否能在查询结果中看到原始内容。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/57362.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Zookeeper面试整理-Zookeeper的基础概念

Zookeeper的基础概念是理解其作为分布式协调服务的核心要素。以下是一些关键的基础概念: 1. Zookeeper是什么? Zookeeper 是一个开源的分布式协调服务,用于分布式应用中的配置管理、命名服务、分布式锁、集群管理等任务。它提供了一组简单的原语,帮助开发人员构建健壮的分布…

[已解决] pycharm添加本地conda虚拟环境 + 配置解释器 - pycharm找不到conda可执行文件

目录 问题&#xff1a; 方法&#xff1a; 补充&#xff1a;创建conda虚拟环境 参考文档&#xff1a;pycharm找不到conda可执行文件怎么办&#xff1f;-CSDN 问题&#xff1a; 1.显示&#xff1a;未为项目配置 Python 解释器 2.想在pycharm中使用本地创建的虚拟环境 方法&a…

【分布式微服务云原生】《微服务架构大揭秘:流行框架与服务治理攻略》

标题&#xff1a;《微服务架构大揭秘&#xff1a;流行框架与服务治理攻略》 摘要&#xff1a;本文深入探讨了流行的微服务架构框架&#xff0c;包括 Spring Cloud、Docker Kubernetes、Dubbo、Service Mesh 和 Serverless 架构&#xff0c;详细介绍了它们的关键组件和服务治理…

通过前端UI界面创建VUE项目

通过前端UI界面创建VUE项目&#xff0c;是比较方面的一种方式&#xff0c;下面我们详细分析一下流程&#xff1a; 1、找到合适目录 右键鼠标&#xff0c;点击在终端打开 2、开始创建 输入 vue ui 浏览器弹出页面 3、点击Create项目 显示已有文件列表&#xff0c;另外可以点击…

HttpURLConnection和OkHttp的特点

HttpURLConnection与OkHttp概述及个人倾向性分析 在Java和Android开发中&#xff0c;HttpURLConnection与OkHttp都是用于处理HTTP请求的库&#xff0c;它们在功能、性能、易用性等方面各有千秋。本文将详细阐述两者的特点&#xff0c;并结合个人使用经验&#xff0c;表达我对哪…

【React系列二】—React学习历程的分享

一、表单处理 受控组件 HTML 中的表单元素是可输入的&#xff0c;也就是有自己的可变状态 而 React 中可变状态通常保存在state中&#xff0c;并且只能通过 setState() 方法来修改 React 将 state 与表单元素值 value 绑定在一起&#xff0c;有 state 的值来控制表单元素的值…

find_library、pkg_check_modules、pkg_search_module的区别

在CMake中&#xff0c;find_library、pkg_check_modules和pkg_search_module是用于查找和使用库的三种不同命令。以下是具体介绍&#xff1a; find_library 功能&#xff1a;find_library用于查找指定的库文件&#xff08;动态库或静态库&#xff09;&#xff0c;不依赖于库提供…

ChatGLM4重磅开源! 连忙实操测试一波,效果惊艳,真的好用!附带最新相关资料和喂饭级实操推理教程!!

本文目录 GLM4重磅开源啦 GLM4系列版本介绍 GLM4大模型能力测评结果 经典测评任务结果 长文本能力 工具调用能力 多模态能力 手把手实操GLM-4-9B-Chat推理预测&&效果展示 GLM4运行硬件和环境要求 配置对应的库环境 使用peftbitsandbytes 进行4位量化推理 进…

【大模型报告】2024年中国AI大模型场景探索及产业应用调研报告【免费下载】

1.行业概况 市场规模&#xff1a; 2023年中国AI大模型行业规模达到147亿元&#xff0c;预计到2028年将突破1000亿元&#xff0c;复合增速超过50%。 应用价值&#xff1a; AI大模型技术能够提升生产要素的产出效率&#xff0c;并提高数据要素在生产要素组合中的地位。 应用路…

本地生活便民信息服务小程序源码系统 PHP+MySQL组合开发 带完整的安装代码包以及搭建部署教程

系统概述 地方门户分类信息网站源码系统是一个基于PHP和MySQL开发的强大平台&#xff0c;旨在帮助用户轻松搭建地方性的分类信息网站。该系统集成了众多实用功能&#xff0c;支持用户自由发帖、浏览和搜索各类信息&#xff0c;如二手交易、求职招聘、房屋租售、生活服务、商家…

Git核心概念图例与最常用内容操作(reset、diff、restore、stash、reflog、cherry-pick)

文章目录 简介前置概念.git目录objects目录refs目录HEAD文件 resetreflog 与 reset --hardrevert(撤销指定提交)stashdiff工作区与暂存区差异暂存区与HEAD差异工作区与HEAD差异其他比较 restore、checkout(代码撤回)merge、rebase、cherry-pick 简介 本文将介绍Git几个核心概念…

ubuntu22.04下GStreamer源码编译单步调试

前言 本文会通过介绍在linux平台下的GStreamer的源码编译和单步调试example实例。官网介绍直接通过命令行来安装gstreamer可以参考链接&#xff1a;Installing on Linux。 这种方法安装后&#xff0c;基于gstreamer的程序&#xff0c;单步调试的时候并不会进入到gstreamer源码…

API 接口封装技术详解

一、引言 在现代软件开发中&#xff0c;API&#xff08;Application Programming Interface&#xff09;接口的使用越来越广泛。封装 API 接口可以提高代码的可维护性、可扩展性和安全性。本文将详细介绍 API 接口封装的技术和方法。 二、API 接口封装的目的 提高代码的可维护…

5G band与子载波间隔 SSB pattern 和GSCN范围说明-FR1

本期给大家带来一个FR1的band号与SSB子载波间隔 SSB pattern以及对应的GSCN范围说明一下&#xff0c;希望能给研究5G的你带来帮助 NR band号子载波间隔SS Block patternGSCN范围n115 kHzCase A5279 – <1> – 5419n215 kHzCase A4829 – <1> – 4969n315 kHzCase …

李飞飞:不要数字孪生,要数字表兄弟,一张照片生成机器人训练场景

我们很多人都听说过数字孪生&#xff08;digital twin&#xff09;&#xff0c;在英伟达等公司的大力推动下&#xff0c;这种高效运营工作流程的方法已经在很多工业场景中得到应用。 但你听说过数字表亲&#xff08;digital cousin&#xff09;吗&#xff1f; 近日&#xff0…

HTML/JS添加音乐

HTML/JS添加背景音乐 由于需要避免浏览器不必要的资源消耗&#xff0c;音乐播放必须要有事件触发 文章目录 HTML/JS添加背景音乐htmljs手机浏览器自动播放 html 在body中添加你的音乐 <body> <audio autoplay"autopaly" loop"loop" id"audio…

2024年【浙江省安全员-C证】复审考试及浙江省安全员-C证证考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 浙江省安全员-C证复审考试是安全生产模拟考试一点通总题库中生成的一套浙江省安全员-C证证考试&#xff0c;安全生产模拟考试一点通上浙江省安全员-C证作业手机同步练习。2024年【浙江省安全员-C证】复审考试及浙江省…

vue3环境变量和模式

文章目录 一、vite文档介绍环境变量1.环境变量1.1创建文件 2.NODE_ENV 和 模式**2.1process.env.NODE_ENV&#xff08;Node.js 环境变量&#xff09;**2.2 **模式&#xff08;mode&#xff09;** 二、loadEnv获取环境变量&#xff08;针对在env文件夹下&#xff09;2.1创建环境…

FPGA图像处理之三行缓存

文章目录 一、前言二、FPGA实现三行缓存的架构三、Verilog代码实现四、仿真验证五、输入图像数据进行仿真验证 一、前言 在 FPGA 做图像处理时&#xff0c;行缓存是一个非常重要的一个步骤&#xff0c;因为图像输入还有输出都是一行一行进行的&#xff0c;即处理完一行后再处理…

【Golang】踩坑记录:make()创建引用类型,初始值是不是nil!!

文章目录 起因二、得记住的知识点1. make()切片&#xff0c;初始化了吗&#xff1f;2. make()切片不同长度容量&#xff0c;append时的差别3. 切片是指向数组的指针吗&#xff1f;4. 切片扩容时&#xff0c;重新分配内存&#xff0c;原切片的数据怎么办&#xff1f; 三、咳咳&a…