架构师成长记_第八周_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:

  1. query 是对于ES库中的数据进行检索, 查询的
  2. post_filter是不会去进行检索和计算相关的分数的, 是针对于数据检索出来以后才做的一个过滤操作, 这样的话, 它的性能就会比较高.

2. dsl搜索-排序 sort

在这里插入图片描述

{
    "query": {
       "match": {
           "desc":"慕课网游戏"
        }
        
    },
    "sort": [
        {
            "age":"asc"
        },
        {
            "money":"asc"
        }
    ]
   
}

PS:

text 类型是无法进行排序的. keyword可以进行排序, 原因是, text 会进行倒排索引, 分词处理, 在这之后是很难实现排序功能的, 而keyword类型, 不会进行分词和倒排索引, 故可以用于排序.

解决 text 排序问题: (通过附属的keyword字段实现)

  1. 创建一个索引 shop2.
    在这里插入图片描述
  2. 设置字段类型.
    在这里插入图片描述
{
    "properties": {
        "id": {
            "type": "long"
        },
        "nickname": {
            "type": "text",
            "analyzer": "ik_max_word",
            "fields": {
                "keyword": {
                    "type": "keyword"
                }
            }
        }
    }
}
  1. 查看设置的附属keyword
    在这里插入图片描述
  2. 添加数据
    在这里插入图片描述
{
    "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的主要内容,如果未能解决你的问题,请参考以下文章

架构师成长记_第八周_12_dsl搜索-数据准备+入门语法

架构师成长记_第八周_13_dsl搜索-查询所有内容与分页查询

架构师成长记_第八周_13_dsl搜索-查询所有内容与分页查询

架构师成长记_第八周_13_dsl搜索-查询所有内容与分页查询

架构师成长记_第八周_14_dsl搜索 - term, terms, match, match_phrase 等方式检索详解

架构师成长记_第八周_18_ES- 滚动搜索