elasticsearch 教程(一)程序建立索引

elasticsearch 教程(一)程序建立索引

从elasticsearch 8.x开始,除了通过kibana建立索引之外,还可以在Java程序定义索引。待程序运行时,会先检测是否建立索引,如果已建立索引,即使程序中定义的索引结构发生变化,也不会删除索引然后再重建索引;如果没有建立索引,则会按照程序中定义的索引结构新建索引。

image-20240326133027324

下面首先来讲一下es 8.x中的两个注解@Setting@Mapping@Setting这个注解根据名称可以得知是定义索引相关的设置,例如在这个里面可以定义ik分词器、拼音分词器、简繁体、同义词等分词器;@Mapping这个注解则是定义索引结构,索引有哪些字段、字段采用什么数据类型、字段如何分词、是否设置为自动补齐的字段等定义。

@Data
@Document(indexName = "post")
@Setting(settingPath = "json/post-setting.json")
@Mapping(mappingPath = "json/post-mapping.json")
public class PostIndex {


    /**
     * 主键
     */
    private Long id;

    /**
     * 创建人用户名
     */
    private String username;

    /**
     * 头像;两个用英文逗号分割
     */
    private String avatar;

    /**
     * 标题
     */
    private String title;
    /**
     * 内容
     */
    private String content;

    /**
     * 来源; 1.cool 2.ig
     */
    private Integer source;

    /**
     * 是否展示
     */
    private Integer isShow;

    /**
     * 排序字段
     */
    private Integer order;

    /**
     * ig贴文地址
     */
    private String igUrl;

    /**
     * 创建时间
     */
    private Date createTime;


    /**
     * 发布时间
     */
    private String publishTime;

    /**
     * 更新时间
     */
    private Date updateTime;

    /**
     * 创建人id(cool)
     */
    private Long userid;


    /**
     * 投票数
     */
    private Integer votes;

    /**
     * 投票状态
     */
    private Boolean vote = false;

    /**
     * 标签列表
     */
    private Integer privacy;

    /**
     * 收藏状态
     */
    private Boolean collect = false;

    /**
     * tag标签列表
     */
    @Field(searchAnalyzer = "ikSearchAnalyzer")
    private List<String> tagsList;

    /**
     * 资源列表
     */
    private List<String> resourcesList;

    /**
     * 创建人
     */
    private String creator;

    /**
     * 更新人
     */
    private String updater;

    /**
     * 0草稿、1启用、-1删除
     */
    private Integer status;

    /**
     * 点赞数
     */
    private Integer likes;

    /**
     * 封面图片
     */
    private String img;

}

post-mapping.json文件

{
  "properties": {
    "id": {
      "type": "long"
    },
    "avatar": {
      "type": "keyword"
    },
    "title": {
      "type": "text",
      "store": true,
      "copy_to": "all",
      "analyzer": "text_analyzer",
      "search_analyzer": "ikSearchAnalyzer",
      "fields": {
        "suggest": {
          "type": "completion",
          "analyzer": "ik_max_word",
          "preserve_separators": true,
          "preserve_position_increments": true,
          "max_input_length": 50
        }
      }
    },
    "content": {
      "type": "text",
      "store": true,
      "copy_to": "all",
      "analyzer": "text_analyzer",
      "search_analyzer": "ikSearchAnalyzer",
      "fields": {
        "suggest": {
          "type": "completion",
          "analyzer": "ik_max_word",
          "preserve_separators": true,
          "preserve_position_increments": true,
          "max_input_length": 50
        }
      }
    },
    "createTime": {
      "type": "date",
      "index": false,
      "store": true,
      "format": "date_optional_time",
      "ignore_malformed": true
    },
    "publishTime": {
      "type": "date",
      "format": "yyyy-MM-dd"
    },
    "creator": {
      "type": "keyword",
      "store": true
    },
    "igUrl": {
      "type": "keyword"
    },
    "isShow": {
      "type": "integer",
      "index": false,
      "store": true
    },
    "resourcesList": {
      "type": "text",
      "fields": {
        "keyword": {
          "type": "keyword",
          "ignore_above": 256
        }
      }
    },
    "img":{
      "type": "keyword",
      "store": true
    },
    "tagsList": {
      "type": "completion",
      "analyzer": "completion_analyzer",
      "search_analyzer": "ikSearchAnalyzer"
    },
    "likes": {
      "type": "keyword",
      "store": true
    },
    "votes": {
      "type": "keyword",
      "store": true
    },
    "vote": {
      "type": "keyword",
      "store": true
    },
    "privacy": {
      "type": "keyword",
      "store": true
    },
    "collect": {
      "type": "keyword",
      "store": true
    },
    "order": {
      "type": "keyword"
    },
    "postId": {
      "type": "long"
    },
    "source": {
      "type": "integer",
      "index": false,
      "store": true
    },
    "status": {
      "type": "keyword",
      "store": true
    },
    "updateTime": {
      "type": "date",
      "index": false,
      "store": true,
      "format": "date_optional_time",
      "ignore_malformed": true
    },
    "updater": {
      "type": "keyword",
      "store": true
    },
    "userid": {
      "type": "keyword"
    },
    "username": {
      "type": "keyword",
      "store": true
    },
    "all": {
      "type": "text",
      "analyzer": "text_analyzer",
      "search_analyzer": "ikSearchAnalyzer",
      "fields": {
        "suggest": {
          "type": "completion",
          "analyzer": "ik_max_word",
          "search_analyzer": "ik_max_word"
        }
      }
    }
  }
}

post-settings.json文件

{
  "analysis": {
    "analyzer": {
      "text_analyzer": {
        "filter": ["py"],
        "tokenizer": "ik_max_word",
        "char_filter": [
          "tsConvert"
        ]
      },
      "completion_analyzer": {
        "char_filter": [
          "tsConvert"
        ],
        "tokenizer": "ik_max_word"
      },
      "tsConvert": {
        "tokenizer": "tsConvert"
      },
      "ikSearchAnalyzer": {
        "type": "custom",
        "tokenizer": "ik_max_word",
        "char_filter": [
          "tsConvert"
        ]
      }
    },
    "filter": {
      "py": {
        "type": "pinyin",
        "keep_full_pinyin": false,
        "keep_joined_full_pinyin": true,
        "keep_original": true,
        "limit_first_letter_length": 16,
        "remove_duplicated_term": true,
        "none_chinese_pinyin_tokenize": false
      },
      "tsConvert": {
        "convert_type": "t2s",
        "type": "stconvert",
        "keep_both": "false",
        "delimiter": "#"
      }
    },
    "char_filter": {
      "tsConvert": {
        "convert_type": "t2s",
        "type": "stconvert"
      }
    },
    "tokenizer": {
      "tsConvert": {
        "convert_type": "t2s",
        "type": "stconvert",
        "keep_both": "false",
        "delimiter": "#"
      }
    }
  }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/489524.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

百能云板开启1-6层陶瓷pcb板定制服务

普通PCB通常是由铜箔和基板粘合而成&#xff0c;而基板材质大多数为玻璃纤维&#xff08;FR-4&#xff09;&#xff0c;酚醛树脂&#xff08;FR-3&#xff09;等材质&#xff0c;粘合剂通常是酚醛、环氧等。在PCB加工过程中由于热应力、化学因素、生产工艺不当等原因&#xff0…

哈希冲突解决的几种方式

目录 哈希冲突 哈希冲突-避免方式1-哈希函数的设计 1. 直接定制法--(常用) 2. 除留余数法--(常用) 3. 平方取中法--(了解) 哈希冲突-避免方式2-负载因子调节 哈希冲突-解决方式1-闭散列 1.线性探测 2.二次探测 哈希冲突-解决方式2-开散列(哈希桶) 哈希冲突 在上文中…

【Java程序设计】【C00383】基于(JavaWeb)Springboot的水产养殖系统(有论文)

【C00383】基于&#xff08;JavaWeb&#xff09;Springboot的水产养殖系统&#xff08;有论文&#xff09; 项目简介项目获取开发环境项目技术运行截图 博主介绍&#xff1a;java高级开发&#xff0c;从事互联网行业六年&#xff0c;已经做了六年的毕业设计程序开发&#xff0c…

SketchUp草图大师模型网:哪家更值得信赖?

草图大师模型网是一个提供模型下载和分享的平台&#xff0c;用户可以在上面找到大量的SU模型&#xff0c;并学习一些草图大师的使用技巧。那么&#xff0c;SketchUp草图大师模型网哪家更值得信赖呢?下面将从多个角度进行比较和分析。 首先&#xff0c;我们要看看草图大师模型网…

python关于字符串基础学习

字符串 python字符串是不可改变的 Python不支持单字符类型&#xff0c;单字符也是作为一个字符串使用的。 字符串编码 python3直接支持Unicode,可以表示世界上任何书面语言的字符 python3的字符默认就是16位Unicode编码&#xff0c;ASCII是Unicode的子集 使用内置函数 ord()…

2.4 如何运行Python程序

如何运行Python程序&#xff1f; Python是一种解释型的脚本编程语言&#xff0c;这样的编程语言一般支持两种代码运行方式&#xff1a; 1) 交互式编程 在命令行窗口中直接输入代码&#xff0c;按下回车键就可以运行代码&#xff0c;并立即看到输出结果&#xff1b;执行完一行…

c++初步

作业&#xff1a; 定义自己的命名空间&#xff0c;其中有string类型的变量&#xff0c;再定义两个函数&#xff0c;一个函数完成字符串的输入&#xff0c;一个函数完成求字符串长度&#xff0c;再定义一个全局函数完成对该字符串的反转 #include <iostream> #include &…

虚拟 DOM 的优缺点有哪些

虚拟DOM&#xff08;Virtual DOM&#xff09;技术作为现代前端开发中的重要组成部分&#xff0c;已经成为了众多流行前端框架的核心特性。它的引入为前端开发带来了诸多优势&#xff0c;同时也需要我们认真思考其潜在的考量。下面简单的介绍一下虚拟DOM技术的优势与缺点&#x…

ESCTF-OSINT赛题WP

这你做不出来?check ESCTF{湖北大学_嘉会园食堂} 这个识图可以发现是 淡水渔人码头 但是 osint 你要发现所有信息 聊天记录说国外 同时 提示给了美国 你综合搜索 美国 渔人码头 在美国旧金山的渔人码头&#xff08;英语&#xff1a;Fisherman’s Wharf&#xff09;是一个著名旅…

rust中字符串String常用方法和注意事项

Rust 中通常说的字符串指的是&#xff1a;String 和 &str(字符串字面值、或者叫字符串切片)这两种类型。str是rust中基础字符串类型&#xff0c;String是标准库里面的类型。Rust 中的字符串本质上是&#xff1a;Byte的集合&#xff08;Vec<u8>&#xff09; 基础类型…

使用EasyYapi插件简化导出yapi接口

安装 &#xff1a; 关键配置&#xff1a; 其中的token在这里拿&#xff1a; 使用&#xff1a; 导出当前Controller下的所有api&#xff1a;使用下图命令可仅导出指定的api: 附&#xff1a;配置部分参考了idea&#xff1a;使用easyYapi插件导出yapi接口

docker--docker网络(四)

1. docker网络模式 docker安装成功后&#xff0c;会自动创建三个网络&#xff0c;可以通过如下的方式查看&#xff1a; lisenubuntu:~$ sudo docker network ls [sudo] password for lisen: NETWORK ID NAME DRIVER SCOPE 8994fe397802…

将谷歌 Gemma AI大模型 部署安装本地教程(可离线使用)

CSDN 成就一亿技术人&#xff01; 作者主页&#xff1a;点击&#xff01; ————前言———— 谷歌 Gemma 是一个基于 Python 的图像分析工具&#xff0c;提供快速和准确的物体检测、定位、分类和风格迁移功能。它使用 TensorFlow Lite 模型&#xff0c;使它可以快速运行在…

金和OA C6 IncentivePlanFulfill.aspx SQL注入漏洞复现

0x01 产品简介 金和网络是专业信息化服务商,为城市监管部门提供了互联网+监管解决方案,为企事业单位提供组织协同OA系统开发平台,电子政务一体化平台,智慧电商平台等服务。 0x02 漏洞概述 金和OA C6 IncentivePlanFulfill.aspx接口处存在SQL注入漏洞,攻击者除了可以利用 SQ…

Matlab-写入mhd和raw医学图像处理格式文件

作者&#xff1a;翟天保Steven 版权声明&#xff1a;著作权归作者所有&#xff0c;商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处 mhd和raw是什么&#xff1f; MHD&#xff08;MetaImage&#xff09;和RAW&#xff08;Raw Image Data&#xff09;是用于医学图像…

【力扣hot100】207 课程表(c++、python)解析

相关题目: 210 课程表2 【力扣hot100】207 课程表(c++、python)解析 1.官方题解:1.1深搜c++版本python版本1.2广搜c++1.官方题解: 这是一题经典的「拓扑排序」问题 给定一个包含 n 个节点的有向图 G,我们给出它的节点编号的一种排列,如果满足:对于图 G 中的任意一条…

PTA引水入城

在一个遥远的国度&#xff0c;一侧是风景秀美的湖泊&#xff0c;另一侧则是漫无边际的沙漠。该国的行政区划十分特殊&#xff0c;刚好构成一个 N 行 M 列的矩形&#xff0c;如上图所示&#xff0c;其中每个格子都代表一座城市&#xff0c;每座城市都有一个海拔高度。 为了使居民…

如何实现无公网IP及服务器实现公网环境企业微信网页应用开发调试

文章目录 1. Windows安装Cpolar2. 创建Cpolar域名3. 创建企业微信应用4. 定义回调本地接口5. 回调和可信域名接口校验6. 设置固定Cpolar域名7. 使用固定域名校验 企业微信开发者在应用的开发测试阶段&#xff0c;应用服务通常是部署在开发环境&#xff0c;在有数据回调的开发场…

百度百科词条创建流程是怎样的?

百度百科词条&#xff0c;作为当今权威的知识分享平台之一&#xff0c;越来越多的个人和企业希望自己在百度百科上拥有独立的词条。如何创建一个高质量的百度百科词条呢&#xff1f;本文伯乐网络传媒将为您详细解析百度百科词条的创建流程及编辑技巧&#xff0c;并提供一些常见…

【YOLOv5改进系列(4)】高效涨点----添加可变形卷积DCNv2

可变形卷积 &#x1f680;&#x1f680;&#x1f680;前言一、1️⃣ 什么是可变形卷积二、2️⃣如何在yolov5中添加DCNv2模块2.1 &#x1f393; 修改common.py模块2.2 ✨修改yolo.py文件2.3 ⭐️修改yolov5s.yaml文件2.4 &#x1f3af;训练可能报错结果 三、3️⃣DCNv2实验结果…
最新文章