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,一经查实,立即删除!

相关文章

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

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

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

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

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

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

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;即处理完一行后再处理…

Linux 安装 JDK 环境

最近有小伙伴不怎么会在 Linux 服务器安装 JDK 环境&#xff0c;小格子给大家总结分享一下&#xff0c;下次直接看这篇文章就可以了。下面以 CentOS 为例。 1. 下载 JDK 安装包 由于 JDK1.8.202 是最后一个免费版本&#xff0c;建议下载此版本。由于在 Oracle 官方网站下载需…

JS | JS之元素偏移量 offset 系列属性详解

目录 一、offset 概述 定位父级 offsetParent 偏移量 offsetWidth offsetHeight offsetLeft offsetTop 计算页面偏移 注意事项 二、offset 与 style 区别 偏移offset 样式style 三、案例 ★ 案例&#xff1a;获取鼠标在盒子内的坐标 ★ 案例&#xff1a;模态框…

软件测试学习笔记丨Pytest的使用

本文转自测试人社区&#xff0c;原文链接&#xff1a;https://ceshiren.com/t/topic/22158 1. 简介 pytest是一个成熟的全功能python测试框架测试用例的skip和xfail&#xff0c;自动失败重试等处理能够支持简单的单元测试和复杂的功能测试&#xff0c;还可以用来做selenium/ap…

2024互联网大厂营收排名:京东/阿里/华为前三,超多技术岗都在热招!

2024年已经过去一大半&#xff0c;各大互联网大厂的竞争如火如荼&#xff0c;营收都取得了不俗的成绩&#xff0c;京东、阿里、华为分别占领前三&#xff01; 第四第五名则为华为和拼多多。 根据排行榜里的公司名单&#xff0c;小码特意为大家整理了一批各大厂的招聘岗位。 阿…

【论文#快速算法】Fast Intermode Decision in H.264/AVC Video Coding

目录 摘要1.前言2.帧间模式决策概览2.1 H.264/AVC中的帧间模式决策2.2 发现和动机 3.同质性和平稳性的确定3.1 同质性区域的确定3.2 稳定性区域的决定3.3 整体算法 4.实验结果4.1 IPPP序列的测试4.2 IBBP序列测试 5.结论 《Fast Intermode Decision in H.264/AVC Video Coding》…

基础数据结构——数组(动态数组,二维数组,缓存与局部性原理)

1.概述 在计算机科学中&#xff0c;数组是由一组元素&#xff08;值或变量&#xff09;组成的数据结构&#xff0c;每个元素有至少一个索引或键来标识 因为数组内的元素是连续存储的&#xff0c;所以数组中元素的地址&#xff0c;可以通过其索引计算出来&#xff0c;例如&…

生产力工具|vscode for mac的安装python库和使用虚拟环境(一)

一、在vscode中运行python代码&#xff08;mac或windows&#xff09; &#xff08;一&#xff09;在vscode中安装Python插件 若想在vscode中高效率的编辑Python代码&#xff0c;需要安装Python插件&#xff0c;点击下图中红框内的按钮&#xff1a; 然后在左上角的搜索框中输入…

Vue前端开发2.1 单文件组件

文章目录 一、单文件组件概念二、单文件组件构成1. 模板&#xff08;Template&#xff09;2. 样式&#xff08;Style&#xff09;3. 逻辑&#xff08;Script&#xff09; 三、单文件组件演示1. 创建Vue项目2. 启动Vue项目3. 用VS Code打开项目4. 清空样式文件代码5. 创建欢迎组…

【redis】热点key问题

【redis】热点key问题 【一】什么是热点key问题【二】什么样的key被称为热key【三】热点Key问题的危害【四】如何监控发现热点key【五】热点Key的解决方案【1】使用二级缓存【2】将热key分散到不同的服务器中【3】热key拆分【4】将核心/非核心业务做Redis的隔离 【六】业界已有…