架构师成长记_第八周_16_dsl搜索-过滤器 post_filter, 排序 sort, 高亮 highlight
Posted 流浪少年的梦
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了架构师成长记_第八周_16_dsl搜索-过滤器 post_filter, 排序 sort, 高亮 highlight相关的知识,希望对你有一定的参考价值。
文章目录
1. dsl搜索-过滤器 post_filter
对于range属性有4个关键字:
gt: 大于
lt: 小于
gte:大于等于
lte:小于等于
{
"query": {
"match": {
"desc":"慕课网游戏"
}
},
"post_filter": {
"range" : {
"money":{
"gt": 60 ,
"lt": 1000
}
}
},
"_source": [
"id",
"desc",
"money",
"sex"
]
}
PS:
- query 是对于ES库中的数据进行检索, 查询的
- post_filter是不会去进行检索和计算相关的分数的, 是针对于数据检索出来以后才做的一个过滤操作, 这样的话, 它的性能就会比较高.
2. dsl搜索-排序 sort
{
"query": {
"match": {
"desc":"慕课网游戏"
}
},
"sort": [
{
"age":"asc"
},
{
"money":"asc"
}
]
}
PS:
text 类型是无法进行排序的. keyword可以进行排序, 原因是, text 会进行倒排索引, 分词处理, 在这之后是很难实现排序功能的, 而keyword类型, 不会进行分词和倒排索引, 故可以用于排序.
解决 text 排序问题: (通过附属的keyword字段实现)
- 创建一个索引 shop2.
- 设置字段类型.
{
"properties": {
"id": {
"type": "long"
},
"nickname": {
"type": "text",
"analyzer": "ik_max_word",
"fields": {
"keyword": {
"type": "keyword"
}
}
}
}
}
- 查看设置的附属keyword
- 添加数据
{
"id": 1002,
"nickname":"漂亮的小哥哥"
}
5. 实现 text 排序
{
"sort":[
{
"nickname.keyword": "desc"
}
]
}
3. dsl搜索- 高亮显示 highlight
{
"query":{
"match": {
"desc": "慕课网"
}
},
"highlight":{
"pre_tags":["<span>"],
"post_tags":["</span>"],
"fields":{
"desc":{}
}
}
}
以上是关于架构师成长记_第八周_16_dsl搜索-过滤器 post_filter, 排序 sort, 高亮 highlight的主要内容,如果未能解决你的问题,请参考以下文章
架构师成长记_第八周_13_dsl搜索-查询所有内容与分页查询
架构师成长记_第八周_13_dsl搜索-查询所有内容与分页查询
架构师成长记_第八周_13_dsl搜索-查询所有内容与分页查询
架构师成长记_第八周_14_dsl搜索 - term, terms, match, match_phrase 等方式检索详解