ElasticSearch的操作使用

Elasticsearch的使用操作




提示:以下内容仅供参考

一、Elasticsearch是什么?

ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎, 基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache 许可条款下的开放源码发布,是第二最流行的企业搜索引擎。设计用于云计算中,能够达到实时搜索, 稳定,可靠,快速,安装使用方便。

二、Elasticsearch的安装和使用

1、Elasticsearch下载安装

提示:安装 Elasticsearch 之前,你需要先安装一个较新的版本的 Java,最好的选择是,你可以从 www.java.com 获得官方提供的最新版本的 Java。
elasticsearch下载

  1. 解压下载文件
  2. 启动文件中bin目录下的elasticsearch.bat
  3. 成功访问http://localhost:9200,则elasticsearch启动成功

2、可视化平台Kibana的安装使用

kibana下载

  1. 解压下载文件
  2. 要连接非本地的elasticsearch,需配置config目录下的kibana.yml。修改elasticsearch的hosts、username、password
  3. 启动文件中bin目录下的kibana.bat
  4. 成功访问http://127.0.0.1:5601/app/dev_tools#/console,则可进行ES的增删改查

3、ElasticSearch的数据操作

3.1 查询操作

bool :这是个 复合过滤器(compound filter) ,它可以接受多个其他过滤器作为参数,并将这些过滤器结合成各式各样的布尔(逻辑)组合。
must:所有的语句都 必须(must) 匹配,与 AND 等价。
must_not:所有的语句都不能(must not) 匹配,与 NOT 等价。
should:至少有一个语句要匹配,与 OR 等价。
match_phrase:不分词查询。
term:精准查询,与=等价。
match_all: {} 匹配所有的, 当不给查询条件时,默认全查。

GET /listDoc/_search
{"query" : {
	"bool" : {
     	"must": [
        	{"term": {"字段名":""}},{"term": {"字段名":""}},
        	{"bool": {
        		"should" : [
        			{"match_phrase": {"字段名": ""}},
        			{"term" : {"字段名.字段名": ""}}
        		]
        	}}
        ]}
	},
	"from": (pageNum-1)*pageSize,"size": pageSize,
	"sort": [{"字段名": {"order": "desc"}}]       
}

多个字段查询
multi_match:同时对查询的关键词,多个字段同时进行匹配,即多个字段是AND的关系

{
    "query":{
        "multi_match":{
            "query":"2501",
            "fields":["merchant_id","_id"]
        }
    }
}

多个值查询

"query" : {
	"filtered" : {
		"filter" : {
			"terms" : {
				"字段名" : ["", ""]
			}
		}
	}
}

gt : > 大于
lt : < 小于
gte : >= 大于等于
lte : <= 小于等于

"query" : {
    "filtered" : {
      "filter" : {
        "range" : {
          "price" : {
            "gt" : 20.0,
            "lt" : 100
          }
        }
      }
    }
  }
3.2 删除操作

符合条件的数据都会被删除

POST template_list_dict/_delete_by_query
{
	"query" : {
		"bool" : {
			"must": [
				{"term": {"字段":"条件"}},{"term": {"字段":"条件"}}
			]
		}
	}
}
3.3 新增操作

?refresh的作用是刷新数据,用于实现新增数据后的实时查询,也可用于删除操作。

POST listDoc/_doc【?refresh】
{
	"字段" : "数据",
    "字段" : "数据"
}
3.4 索引

新增一个文档时,ES会自动创建一个索引

// 创建索引test
PUT test
// 获取索引
GET test
// 删除索引
DELETE test
// 创建索引时定义mapping和setting
PUT test
{
  "mappings" : {
    "properties" : {
      "name" : {
        "type" : "keyword"
      }
    }
  },
  "settings" : {
    "index" : {
      "number_of_shards" : 1,
      "number_of_replicas" : 2
    }
  }
}
3.5 setting的操作

refresh_interval:索引刷新的时间,默认为1s
number_of_replicas:副本数量,可以修改,默认1
number_of_shards:分片数量,不可修改,只能在创建索引的时候定义,默认1

GET template_list_dict/_settings
PUT template_list_dict/_settings
{ "refresh_interval": "2s" }
3.6 mapping的操作
// 获取ES所有的mapping
GET _mapping
// 定义索引的mapping
PUT test/_mapping
{
    "properties" : {
      "name" : {
        "type" : "keyword"
      }
    }
}

4、keyword和text类型

keyword: 不支持全文搜索。所以,只能是使用精确匹配进行查询,比如 term 查询。
text :默认支持全文搜索。


提示:仅限于分享自我学习的内容,有错误麻烦评论告知一下,谢谢。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值