首页 > 其他分享 >Elasticsearch - Text字段排序

Elasticsearch - Text字段排序

时间:2024-04-26 09:34:54浏览次数:26  
标签:website keyword title Text 字段 Elasticsearch doc PUT class

插入数据

DELETE /website

PUT /website
{
  "mappings": {
    "properties": {
      "title": {
        "type": "text"
      }
    }
  }
}

PUT /website/_doc/1
{
  "title": "first class"
}
PUT /website/_doc/2
{
  "title": "second class"
}
PUT /website/_doc/3
{
  "title": "third class"
}

GET /website/_search
{
  "query": {
    "match_all": {}
  },
  "sort": [
    {
      "title": {
        "order": "desc"
      }
    }
  ]
}

默认情况下在基于title 排序时会报错,解决方案:

1. title设置 fielddata=true

DELETE /website

PUT /website
{
  "mappings": {
    "properties": {
      "title": {
        "type": "text",
        "fielddata": true
      }
    }
  }
}

PUT /website/_doc/1
{
  "title": "first class"
}
PUT /website/_doc/2
{
  "title": "second class"
}
PUT /website/_doc/3
{
  "title": "third class"
}

GET /website/_search
{
  "query": {
    "match_all": {}
  },
  "sort": [
    {
      "title": {
        "order": "desc"
      }
    }
  ]
}

此时可以根据title倒序查询,但可以看出是通过title的第一个分词来排序的
但是想让整个title字段排序就需要

2. 将一个text字段建立两次索引,一个用于搜索一个用于排序

# 设置一个keyword类型的属性
PUT /website
{
  "mappings": {
    "properties": {
      "title": {
        "type": "text",
        "fields": {
          "keyword": {
            "type": "keyword"
          }
        }
      }
    }
  }
}
# 查询时使用 title.keyword 查询 此时就是按照keyword进行排序
PUT /website/_doc/4
{
  "title": "second art"
}

GET /website/_search
{
  "query": {
    "match_all": {}
  },
  "sort": [
    {
      "title.keyword": {
        "order": "asc"
      }
    }
  ]
}

标签:website,keyword,title,Text,字段,Elasticsearch,doc,PUT,class
From: https://www.cnblogs.com/l-zl/p/18158323

相关文章

  • HarmonyOS 中 Context 相关的内容及其区别
    以下是不同Context类型及其特点的概述:ApplicationContext应用级别Context:ApplicationContext是应用级别的上下文环境。生命周期管理:提供了订阅应用内Ability生命周期变化的能力。系统资源监控:可以订阅系统内存变化和应用内系统环境的变化。适用场景:在UIAbility、Exte......
  • JAVA程序连接es(Elasticsearch)会出现长时间不请求,突然请求会连接超时的问题
       可以使用这个方法试试设置长时间保持策略 伪代码 /***配置长连接保持策略**@return*/publicConnectionKeepAliveStrategyconnectionKeepAliveStrategy(){return(response,context)->{//Honor'keep......
  • WPF RICHTEXTBOX 和数据库读写图文的方法。
    存入数据库。publicstringtoxaml(){//Streams=newMemoryStream();//其他的什么Stream类型都没问题XamlWriter.Save(MemoryStreams=newMemoryStream();TextRangedocumentTextRange=newTextRange(thi......
  • a-textarea(textarea)出现模糊问题的可能解决方案
    a-textarea(textarea)出现模糊问题的可能解决方案项目介绍:本项目是一个vue3+ant-design-vue4.x开发,是一个客服机器人的组件。其它项目通过iframe+js文件来引入(iframe的内容就是表单,入口按钮是通过js文件进行dom操作创建)。通过js监听页面宽度,然后通过transform来适配不同分辨率......
  • Elasticsearch - filter过滤器
    通过query查询eg:查询desc中有"Facebook官网"并且价格在7-20之间的数据在只查询desc中有"Facebook官网"时,返回的_score分别是3.598,0.097GET/book/_search{"query":{"bool":{"must":[{"match":{......
  • JSON 序列化 属性名 大写变成小写 保持不变 newsoft.json system.text.json
    JSON序列化属性名由大写变成小写的问题在ASP.NET中,默认情况下,JSON序列化会将属性名转换为小写(camelcase)以匹配JSON的约定。如果您希望保留C#的命名约定(即属性名的大小写不变),您需要更改默认的JSON序列化器。System.Text.Json使用System.Text.Json(推荐):在Startup.c......
  • Enhancing ID and Text Fusion via Alternative Training in Session-based Recommend
    目录概MotivationAlterRec代码LiJ.,HanH.,ChenZ.,ShomerH.,JinW.,JavariA.andTangJ.EnhancingIDandtextfusionviaalternativetraininginsession-basedrecommendation.2024.概作者“发现”多模态推荐中ID和文本模态的结合做的并不好,于是乎提出......
  • 大模型必备 - 中文最佳向量模型 acge_text_embedding
    近期,上海合合信息科技股份有限公司发布的文本向量化模型acge_text_embedding在中文文本向量化领域取得了重大突破,荣获MassiveTextEmbeddingBenchmark(MTEB)中文榜单(C-MTEB)第一名的成绩。这一成就标志着该模型将在大模型领域的应用中发挥更加迅速和广泛的影响。MTEB概......
  • NumericUpDown 订阅 TextChanged
    NumericUpDownWinForm中NumericUpDown控件的ValueChanged事件是在输入值失去焦点时触发的(NumericUpDown控件失去焦点时会设置Value值从而引发ValueChanged事件)。问题:ValueChanged事件虽然也能做到值改变时的通知但是无法做到在输入的过程中值改变时提供及时的反馈。解......
  • a-textarea(textarea)出现模糊问题的可能解决方案
    a-textarea(textarea)出现模糊问题的可能解决方案项目介绍:本项目是一个vue3+ant-design-vue4.x开发,是一个客服机器人的组件。其它项目通过iframe+js文件来引入(iframe的内容就是表单,入口按钮是通过js文件进行dom操作创建)。通过js监听页面宽度,然后通过transform来适配不同分辨率......