博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ElasticSearch 入门
阅读量:4938 次
发布时间:2019-06-11

本文共 3364 字,大约阅读时间需要 11 分钟。

ElasticSearch
ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能
Elasticsearch是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据。
为什么要用ElasticSearch
我们建立一个网站或应用程序,并要添加搜索功能,但是想要完成搜索工作的创建是非常困难的。我们希望搜索解决方案要运行速度快,我们希望能有一个零配置和一个完全免费的搜索模式,我们希望能够简单地使用JSON通过HTTP来索引数据,我们希望我们的搜索服务器始终可用,我们希望能够从一台开始并扩展到数百台,我们要实时搜索,我们要简单的多租户,我们希望建立一个云的解决方案。因此我们利用Elasticsearch来解决所有这些问题及可能出现的更多其它问题。
 
es安装
 
java版本要求:最低1.7 
官网下载:
ElasticSearch:
kibana: 
windows下安装:
1.解压下载的压缩包,
2.编辑elasticsearch根目录/config/elasticsearch.yml
   cluster
.name : 集群名
,分布式部署,确保该名称唯一。
   network.host: 192.168.0.61 :ip地址
   http.port: 9200  端口
  
3.启动根目录下的bin文件夹下的elasticsearch.bat即可
 
kibana是一个与elasticsearch一起工作的开源的分析和可视化的平台。使用kibana可以查询、查看并与存储在elasticsearch索引的数据进行交互操作。使用kibana能执行高级的数据分析,并能以图表、表格和地图的形式查看数据。 
windows下安装:
1.解压下载的压缩包,
2.kibana根目录下config/kibana.yml
  server.port :5601   kibana端口
  server.host :localhost ip地址
  elasticsearch.url : "http://192.168.0.61:9200"   
es连接
3.启动根目录下的bin文件夹下的kibana.bat
 
打开浏览器 访问 http://localhost:5601/
 
接下来就可以操作es了
es官方文档 
es操作
新建索引包含setting和mapping
PUT /my_index_name{  "settings": {    "number_of_replicas": 1,    "number_of_shards": 3,    "analysis": {},    "refresh_interval": "1s"  },  "mappings": {         "my_type_name": {    //type名字      "properties": {    //type的字段属性        "title": {          "type": "text",          "analyzer": "ik_max_word"        },        "name":{          "type": "text",          "analyzer": "ik_max_word"        },        "num":{          "type": "integer"        }      }    }  }}

也可以单独创建setting和mapping

字段属性创建好以后,如果要修改设置的某个字段的属性是修改不了的,可以

添加数据

POST my_index_name/my_type_name{  "title":"测试title",  "name":"测试",  "num":1}

修改数据

POST my_index_name/my_type_name/AWZ8KV5GLlhkZVrwqqUS{  "title":"测试title",  "name":"测试111",  "num":1}

删除索引  

不能删除某个类型

DELETE my_index_name

 

 

es查询
1.简单基本操作
GET _search{  "query": {    "match": {      "FIELD": "TEXT"    }  }}
GET /_search{  "query": {    "bool": {  //组合查询,各个子句之间的逻辑关系是与(and)      "must": [  必须满足的条件         {          "match": {  //普通匹配查询             "username": "smith"            }        }      ],      "must_not": [  //必须不满足某条件        {          "match_phrase": {  //短语匹配查询            "username": "granny smith"          }        }      ],      "filter": [  //过滤器 文档必须匹配该过滤条件,跟must子句的唯一区别是,filter不影响查询的score;        {          "exists": { //存在            "field": "title"          }        }      ]    }  },  "aggs": {  //聚合    "my_agg": {  //聚合名       "terms": {        "field": "user",        "size": 10      }    }  },  "highlight": {  //高亮    "pre_tags": [      ""    ],    "post_tags": [      ""    ],    "fields": {      "body": {        "number_of_fragments": 1,        "fragment_size": 20      },      "title": {}    }  },  "size": 20,  //一次查询的数据量  "from": 100,  //从第几条数据开始  "_source": [  //要查询的字段    "title",    "id"  ],  "sort": [  //排序    {      "_id": {        "order": "desc"      }    }  ]}

多字段查询

"multi_match": {  "query": "Elastic",  //匹配的字  "fields": ["user.*", "title^3"],  //需要匹配的字段  "type": "best_fields"    //multi_match查询在内部执行的方式  best_fields(默认)查找与任何字段匹配的文档}

组合查询

"bool": {  "must": [],  "must_not": [],  "filter": [],  "should": [],  "minimum_should_match" : 1    //最小匹配度}

范围搜索

"range": {  "age": {    "gte": 10,    "lte": 20,    "boost": 2      }}

 

 
 
 
 
 
 

转载于:https://www.cnblogs.com/double-yuan/p/9799498.html

你可能感兴趣的文章
2016-5-25授课(3)
查看>>
新增加的元素 相关操作获取不到
查看>>
Zabbix 3.0编译安装
查看>>
json介绍及简单示例
查看>>
h.264 率失真优化
查看>>
【转】拓扑排序入门
查看>>
Spring中Bean的命名问题(id和name区别)及ref和idref之间的区别
查看>>
How to install 64-bit Google Chrome 28+ on 64-bit RHEL/CentOS 6 or 7
查看>>
搭建LNAMP环境(三)- 源码安装Apache2.4
查看>>
linux --> fork()详解
查看>>
Spring注解 开发
查看>>
#!/bin/bash(转)
查看>>
BZOJ4589 Hard Nim(博弈+FWT)
查看>>
hdu 2473 Junk-Mail Filter 并查集删点,模板题
查看>>
【Maps】【搜狗】
查看>>
Linux命令详解-whatis
查看>>
分组求和
查看>>
eclipse 忽略 target 设置
查看>>
Reptile:requests代理IP
查看>>
HTML5应用缓存与Web Workers
查看>>