ElasticSearch 花式搜索详解(第七更)
搜索elasticsearch 详解 第七 花式
2023-09-11 14:21:23 时间
ES复杂查询
先了解搜索后的结构体!
注意 在kibana中每个key 在后面结合springboot后都是对应的对象!
筛选字段 source
"_source": ["field","field",...]
如果设置source就像mysql中指定字段名一样!
排序 sort
"sort": [
{
"age": { #这是个集合,代表可以有多个值进行排序
"order": "desc" #asc或desc
}
}
]
分页 form,size
"from": 0, #从第几个数据开始
"size": 1 #显示多少条
多条件匹配查询 must 相当于mysql中的关键词and
使用must可以将条件进行and匹配
GET /my_index6/_search
{
"query": {
"bool": {
"must": [
{
"match": {
"name": "张"
}
},
{
"match": {
"age": 23
}
}
]
}
}
}
可以把match换成term 单词进行精确匹配
多条件匹配 should 相当于 mysql中的关键词or
使用should 可以将条件进行or匹配
GET /my_index6/_search
{
"query": {
"bool": {
"should": [
{
"match": {
"name": "张二狗"
}
},
{
"match": {
"age": 23
}
}
]
}
}
}
多条件查询 must_not 不等于 则匹配
多条件 and关系
GET /my_index6/_search
{
"query": {
"bool": {
"must_not": [
{
"match": {
"age": 23
}
}
]
}
},
"_source": ["age"]
}
复杂查询 fitle 过滤
- gt #大于 >
- gte #大于等于 >=
- lt #小于 <
- lte #小于等于 <=
查询年龄在22到24之间的数据
"filter": [
{
"range": {
"age": {
"gte": 22,
"lte": 24
}
}
}
]
复杂查询 一个字段多条件匹配 or
只需要空格隔开就行
text和keyword、match和term区别
- text 会被分词器解析
- keyword 不会被分词器解析
- match 会模糊匹配
- term 会精确匹配(词),且会使用倒排索引,效率相对来说要高很多
- term+keyword 最精确查询
高亮查询
"highlight": {
"fields": {
"name": {}
}
}
默认高亮是em标签,我们还可以自定义标签和样式
总结!
- 匹配
- 按条件匹配
- 精确匹配
- 排序
- 区间范围匹配
- 区间过滤匹配
- 分页
- 单个字段 多条件匹配
- 高亮查询 自定义标签
相关文章
- elasticsearch搜索原理之倒排索引
- ElasticSearch搜索term和terms的区别
- 获取百度搜索结果的真实URL、描述、标题
- 【华为云技术分享】自动网络搜索(NAS)在语义分割上的应用(二)
- ElasticSearch安装拼音插件 elasticsearch-analysis-pinyin
- Java实现 LeetCode 450 删除二叉搜索树中的节点
- Java实现 LeetCode 212 单词搜索 II(二)
- Java实现 LeetCode 35 搜索插入位置
- 第三百七十节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)用Django实现搜索结果分页
- 大流量下的 ElasticSearch 搜索演进
- LeetCode(109):有序链表转换二叉搜索树
- LeetCode(79): 单词搜索
- Elasticsearch hadoop使用示例 & 运维实战之集群规划 &presto-elasticsearch connector
- Leetcode653. 两数之和 IV - 输入二叉搜索树
- 79. 单词搜索
- PHP搜索中的sql注入
- Elasticsearch安装(四), elasticsearch head 插件安装和使用。
- Elasticsearch教程(六) elasticsearch Client创建
- ML之lightgbm:LightGBM参数手册、调参技巧/调参顺序/网格搜索实现、lightgbm.train/LGBMClassifier/LGBMRegressor函数简介及其案例应用之详细攻略
- ML:基于葡萄牙银行机构营销活动数据集(年龄/职业等)利用Pipeline框架(两种类型特征并行处理)+多种模型预测(分层抽样+调参交叉验证评估+网格/随机搜索+推理)客户是否购买该银行的产品二分类案
- 【无人机】基于运动编码粒子群优化(MPSO)的搜索无人机(UAV)的运动目标(Matlab代码实现)
- 81. 搜索旋转排序数组 II
- 「Elasticsearch + Lucene」搜索引擎的架构、倒排索引和搜索过程
- 分布式搜索elasticsearch配置文件详解
- leetcode 35. 搜索插入位置 js 实现
- 【转载】Elasticsearch 5.x 字段折叠的使用,广度搜索
- 004-linux命令-搜索命令find、locate、whereis、which、type、grep
- [Elasticsearch] 多字段搜索 (三) - multi_match查询和多数字段
- [Elasticsearch] 多字段搜索 (一) - 多个及单个查询字符串
- 记忆化搜索专题
- python elasticsearch 入门教程(三)全文短语搜索