-
添加数据:
1、http://localhost:9200/book/novel/1
{
"doc":{
"word_count": 1000,
"author":"张三",
"title": "移魂大法",
"public_date": "2010-10-01"
}
}
2、http://localhost:9200/book/novel/2
{
"doc":{
"word_count": 2000,
"author":"李三",
"title": "Java入门",
"public_date": "2010-10-01"
}
}
3、http://localhost:9200/book/novel/3
{
"doc":{
"word_count": 2000,
"author":"张四",
"title": "Python入门",
"public_date": "2005-10-01"
}
}
4、http://localhost:9200/book/novel/4
{
"doc":{
"word_count": 1000,
"author":"李四",
"title": "Elasticsearch大法好",
"public_date": "2010-10-01"
}
}
5、http://localhost:9200/book/novel/5
{
"doc":{
"word_count": 5000,
"author":"王五",
"title": "菜谱",
"public_date": "2002-10-01"
}
}
6、http://localhost:9200/book/novel/6
{
"doc":{
"word_count": 10000,
"author":"赵六",
"title": "剑谱",
"public_date": "1997-01-01"
}
}
7、http://localhost:9200/book/novel/7
{
"doc":{
"word_count": 1000,
"author":"张三丰",
"title": "太极拳",
"public_date": "1997-01-01"
}
}
8、http://localhost:9200/book/novel/8
{
"doc":{
"word_count": 3000,
"author":"瓦力",
"title": "Elasticsearch入门",
"public_date": "2017-08-20"
}
}
9、http://localhost:9200/book/novel/9
{
"doc":{
"word_count": 3000,
"author":"很胖的瓦力",
"title": "Elasticsearch精通",
"public_date": "2017-08-15"
}
}
10、http://localhost:9200/book/novel/10
{
"doc":{
"word_count": 1000,
"author":"牛魔王",
"title": "芭蕉扇",
"public_date": "2000-10-01"
}
}
11、http://localhost:9200/book/novel/11
{
"doc":{
"word_count": 1000,
"author":"孙悟空",
"title": "七十二变",
"public_date": "2000-10-01"
}
}
查看全部 -
通过postman,post一个json的方式来定义
包含如下几点:
settings 来指定索引(数据库)的分片和备份信息
通过mapping来指定类型(table)
通过properties来指定文档 (各个列的格式)
查看全部 -
索引-database/数据库:汽车索引,图书索引,家具索引
类型-表:图书索引细分:科普类,文学类,艺术类
文档-记录,每一本书
查看全部 -
6.5.1的mappings 不支持创建两个类型
{ "settings":{ "number_of_shards":3, "number_of_replicas":1 }, "mappings":{ "man":{ "properties":{ "name":{ "type":"text" }, "age":{ "type":"integer" }, "contry":{ "type":"keyword" }, "date":{ "type":"date", "format":"yyyyMMdd HH:mm:ss||yyyyMMdd||epoch_millis" } } } } }
查看全部 -
单实例安装
1、官网下载tar压缩包 https://www.elastic.co/downloads/elasticsearch
2、将下载好的压缩包elasticsearch-5.5.2.tar.gz上传到linux服务器,并解压缩 tar -vxf elasticsearch-5.5.2.tar.gz
3、cd进入到elasticsearch-5.5.2目录中,启动elasticsearch服务命令 sh ./bin/elasticsearch (启动需要java环境1.8)当输出日志有started关键字,则启动成功
4、elasticsearch默认监听127.0.0.1:9200,浏览器输入地址,测试启动成功
查看全部 -
7.12.0支持的写法, 不再支持两个man和women, 也不再支持man这种定义, 默认为_doc
// 实际发现并不需求这样做, 如视频这样做, 很可能会报错, 直接插入记录就好, es会自动实现mappings
{
"settings": {
"number_of_shards": 3,
"number_of_replicas": 1
},
"mappings": {
"properties": {
"name": {
"type": "text"
},
"contry": {
"type": "keyword"
},
"age": {
"type": "integer"
},
"date": {
"type": "date",
"format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
}
}
}
}
查看全部 -
模糊匹配:
query->match ->"field"
习语匹配:
query->match_phrase->"field"
多字段模糊匹配:
query->multi_match->{query:"key",fields:["field1","field2"]}
查看全部 -
将一个服务指定为master.在config的elasticserach.yml作以下配置:
http.cors.enabled: true
http.cors.allow-origin: "*"
cluster.name: lijiafang
node.name: master
node.master: true
network.host: 127.0.0.1
配置节点
cluster.name: lijiafang
node.name: slave1
network.host: 127.0.0.1
http.port: 8200
discovery.zen.ping.unicast.hosts: ["127.0.0.1"]
查看全部 -
分片:每个索引都有多个分片,每个分片是一个Lucene索引
备份:拷贝一份分片就完成了分片的备份
ES默认在创建索引时,会创建5个分片,一份备份,这个数量是可以修改的,分片的数量只能在创建索引的时候指定,而不能在后期进行修改。而备份数量是可以动态修改的。
分片的好处:
易于用户水平扩展和拆分以及分布式操作
分摊服务器的搜索压力
提高搜索效率
备份的好处:
当一个主分片失败或者出现问题时,备份分片可以代替工作,从而提高ES的可用性
备份的分片还可以执行搜索操作,以分摊搜索的压力
查看全部 -
基础概念:
索引:含有相同属性的文档集合,相当于database
类型:索引可以定义一个或多个类型,文档必须属于一个类型,相当于table
文档:文档是可以被索引的基本数据单位,相当于record
查看全部 -
查询
简单查询
GET 127.0.0.1:9200/book/novel/1
条件查询
POST 127.0.0.1:9200/book/_search
返回所有
{
"query":{
"match_all":{}
}
}
返回第几条到第几条数据
{
"query":{
"match_all":{}
},
"from":1,
"size":1
}
关键字查询:
{
"query":{
"match":{
"title":"ElasticSearch"
}
}
}
指定排序规则:
{
"query":{
"match":{
"title":"ElasticSearch"
}
},
"sort":[
{"publish_date":{"order":"desc"}}
]
}
聚合查询
按照列名称聚合
{
"aggs":{
"group_by_word_count":{
"terms":{
"field":"word_count"
}
},
"group_by_publish_date":{
"terms":{
"field":"publish_date"
}
}
}
}
返回统计值,比如最大、最小、平均值
{
"aggs":{
"grades_word_count":{
"stats":{
"field":"word_count"
}
}
}
}
返回最小值
{
"aggs":{
"grades_word_count":{
"min":{
"field":"word_count"
}
}
}
}
查看全部 -
插入数据
指定文档id插入,使用put方法
127.0.0.1:9200/people/man/1
people是索引,man是类型,1是id
{
"name":"lois",
"country":"china",
"age":30,
"date":"1999-01-01"
}
自动产生文档id插入,使用post方法
127.0.0.1:9200/people/man/
people是索引,man是类型,不指定id
{
"name":"lois",
"country":"china",
"age":30,
"date":"1999-01-01"
}
查看全部 -
如果版本是6.5,就应如下配置,否则找不到master
其中,http.port可以不填
报错with the same id but is a different node instance
这个问题是因为复制了已经启动过一次的实例,在es下的data目录中产生了节点数据,处理方式为删除data下的文件夹
查看全部 -
query_string 文本查询
查看全部 -
查看全部
举报