千家信息网

elasticsearch的使用示例分析

发表于:2024-11-23 作者:千家信息网编辑
千家信息网最后更新 2024年11月23日,elasticsearch的使用示例分析,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Elasticsearch 是一个
千家信息网最后更新 2024年11月23日elasticsearch的使用示例分析

elasticsearch的使用示例分析,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

Elasticsearch 是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。

一、基本概念:

1.索引(index)

是Elasticsearch对逻辑数据的逻辑存储,所以它可以分为更小的部分。可以把索引看成关系型数据库的表,索引的结构是为快速有效的全文索引准备的,特别是它不存储原始值。Elasticsearch可以把索引存放在一台机器或者分散在多台服务器上,每个索引有一或多个分片(shard),每个 分片可以有多个副本(replica)。

2.文档(document)

存储在Elasticsearch中的主要实体叫文档(document)。用关系型数据库来类比的话,一个文档相当于数据库 表中的一行记录。

3.Mapping

Mapping是对类型中的文档中的每个字段进行预先定义数据类型等功能,如定义文档中的某个字段为整形,使用什么分析器,是否可搜索等,一个索引可以定义多个mapping。

二、基本操作:

1.新增索引并设置 mapping

PUT请求 http://ip:9200/索引名称/body体如下{    "settings": {"number_of_shards": 3,"number_of_replicas": 1},    "mappings": {        "properties": {            "video_like": {"type": "long"},            "video_date": {"type": "date","format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"},            "video_title": {"analyzer" : "ik_smart","type": "text"},            "video_comment": {"type": "long"},            "share_conut": {"type": "long"},            "video_img_url": {"type": "text"},            "video_url": {"type": "text"},            "type_id": {"type": "long"},            "updata_time": {"type": "date","format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"},            "user_id":{"type":"long"}        }    }}

number_of_replicas 是数据备份数,如果只有一台机器,设置为0,number_of_shards 是数据分片数,默认为5,有时候设置为3。

2.对已存在的索引新增 mapping 字段


PUT请求 http://ip:9200/index/_mapping
{ "properties":{ "name":{ "type":"text" } }}

index为你索引库的名称。body 里写的是要新增的字段名称和字段类型,上面的例子是新增 name 字段,类型为 text 。

3.判断某个字段是否为空


http://ip:9200/index/_search
{ "query": { "bool": { "must_not": { "exists": { "field": "label" } } } }}

向es插入数据时,如果某个字段为空,我就没有对该字段写入值,所以判断某个字段是否为空值,直接判断这个字段是否存在即可。用 exists 判断某个字段是否存在,这个例子是判断 label 的值是否为空

4.must 多个条件

http://ip:9200/index/_search
{ "query": { "bool": { "must": [ { "range": { "video_date": { "gte": "now-24h+8h", "lte": "now+8h" } } }, { "exists": { "field": "label" } } ] } }}

must 多个条件时,对应的参数类型是列表。上面的例子: 查找必须是video_date 在某个时间范围,并且 label 字段存在的结果。

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

字段 索引 数据 多个 文档 类型 例子 名称 数据库 存储 搜索 分析 全文 服务器 机器 条件 逻辑 面的 帮助 服务 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 搭建本地git服务器 什么数据库不容易被黑 目前计算机网络技术的环境 网络安全监测装置干什么用的 厦门亨达海天网络技术公司 诠释黑客文化与网络安全 数据库支持的索引有哪几种 雷州市安全教育与网络安全教育 逆水寒如何找到服务器 通信基站网络安全 2019年网络安全优秀教师 oppo皇室战争单独服务器 徐州软件开发专业招聘信息 科技互联网成就 河北企业党性体检软件开发 文件夹网络安全密钥不弹出 最好的游戏服务器 clingen数据库评分为0 吴江中专计算机网络技术学校 连接mysql数据库格式 软件开发程序培训中心 战地3服务器找不到 网络安全责任部门的具体职能 小米服务器在新加坡安全吗 用什么数据库储存文件 上海博远网络技术有限公司 上海洁霸网络技术有限公司 在华为做网络安全的前景 db2数据库获取当前日期 从事拟态网络安全前景
0