`
673181695
  • 浏览: 3934 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

ES使用分享

 
阅读更多

官网地址:https://www.elastic.co/

 

安装

最低要求jdk1.7,下载解压就可以了。

配置

配置文件位置:$ES_HOME/config/elasticsearch.yml

虽然es默认配置就能直接用,但是建议修改一下默认配置,如集群名字,分片数,节点名,数据存放位置,日志存放位置。

启动

$ES_HOME/bin/elasticsearch -d 

-d参数表示后台启动,还可以指定其他启动参数,如内存大小。 -Xmx3g -Xms3g -XX:PermSize=80

常用命令

查看集群健康状态

curl 'localhost:9200/_cat/health?v'

列出所有索引

curl 'localhost:9200/_cat/indices?v'

创建一个索引

curl -XPUT 'localhost:9200/customer?pretty'

 

插入一个文档(指定id 如果不指定id会随机生成一个id)

curl -XPUT 'localhost:9200/customer/external/1?pretty' -d '
{
  "name": "John Doe"
}'

 

 根据id查找

curl -XGET 'localhost:9200/customer/external/1?pretty'

 

删除索引

curl -XDELETE 'localhost:9200/customer?pretty'

 

修改文档

curl -XPOST 'localhost:9200/customer/external/1/_update?pretty' -d '
{
  "doc": { "name": "Jane Doe" }
}'

 

不指定id插入文档(不指定id用POST)

curl -XPOST 'localhost:9200/customer/external?pretty'-d '
{
  "name": "Jane Doe"
}'

 

删除文档

curl -XDELETE 'localhost:9200/customer/external/2?pretty'

 

普通搜索

curl 'localhost:9200/bank/_search?q=*&pretty'

 

创建mapping

PUT /{indices}/_mapping/{type}
{
    "my_index": {
        "mappings": {
            "my_type": {...}
        }
    }
}
curl -XPUT  http://localhost:9200/fstore/_mapping/test -d '{
    "test": {
        "properties": {
            "api": {
                "type": "string",
                "index": "not_analyzed"
            },
            "appId": {
                "type": "long"
            },
            "appName": {
                "type": "string",
                "index": "not_analyzed"
            }
        },
        "_source":{"excludes":["appName"]}
    }
}'

 

查看mapping

GET /{indices}/_mapping/{types}
curl localhost:9200/fstore/_mapping/test?pretty

 

聚合

curl -XPOST 'localhost:9200/bank/_search?pretty'-d '
{
  "size": 0,
  "aggs": {
    "group_by_state": {
      "terms": {
        "field": "state"
      }
    }
  }
}'

 

基于位置的搜索

 Geo Location and Search

一个完整的搜索

curl -XPOST '192.168.3.82:9200/tclappstore/_search?pretty' -d '
{
    "from": 0,
    "size": 10,
    "query": {
        "filtered": {
            "query": {
                "bool": {
                    "should": [
                        {
                            "multi_match": {
                                "query": "途牛",
                                "fields": [
                                    "name",
                                    "recommend_name",
                                    "search_keywords"
                                ],
                                "boost": 50
                            }
                        },
                        {
                            "wildcard": {
                                "name.raw_lowercase": {
                                    "wildcard": "*途牛*",
                                    "boost": 100
                                }
                            }
                        },
                        {
                            "wildcard": {
                                "recommend_name": {
                                    "wildcard": "*途牛*",
                                    "boost": 100
                                }
                            }
                        },
                        {
                            "match": {
                                "name.first_letter_pinyin": {
                                    "query": "途牛",
                                    "type": "boolean"
                                }
                            }
                        },
                        {
                            "match": {
                                "name.full_letter_pinyin": {
                                    "query": "途牛",
                                    "type": "boolean",
                                    "boost": 10
                                }
                            }
                        },
                        {
                            "match": {
                                "name.ik_pinyin": {
                                    "query": "途牛",
                                    "type": "boolean"
                                }
                            }
                        }
                    ]
                }
            },
            "filter": {
                "bool": {
                    "must": [
                        {
                            "term": {
                                "status": 1
                            }
                        },
                        {
                            "terms": {
                                "cates": [
                                    1
                                ]
                            }
                        }
                    ]
                }
            }
        }
    },
    "sort": [
        {
            "_score": {
                "order": "desc"
            }
        },
        {
            "get_real_download_count": {
                "order": "desc"
            }
        },
        {
            "sort": {
                "order": "desc"
            }
        }
    ]
}'

 

 

 

另外还有批量插入,批量修改文档等

 

JAVA中连接ES

有两种方式连接ES

建议客户端jar包版本和集群ES版本一直

  • NodeClient :以节点形式加入集群
  • TransportClient:作为一个普通客户端连接集群
Client client = TransportClient.builder().build()
        .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("host1"), 9300))
        .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("host2"), 9300));

    如果不是默认集群名,需要设置集群名

Settings settings = Settings.settingsBuilder()
        .put("cluster.name", "myClusterName").build();
Client client = TransportClient.builder().settings(settings).build();
文档API

 创建索引

CreateIndexRequest createIndexRequest = new CreateIndexRequest(esIndexName);
// 从指定位置读取json文件作为mapping
String setting = readMapping("elasticsearch/settings/app-index.json");
createIndexRequest.source(setting);
// 创建索引
EsClient.getInstance().getClient().admin().indices().create(createIndexRequest).actionGet();

 删除一个文档

DeleteResponse response = client.prepareDelete("twitter", // 索引名
 "tweet",                                                 // type  
 "1"                                                      //文档id
).get();
 搜索API

 如果debug可以看到查询的dsl语句,可以直接用dsl语句去查寻

setExplain(true) 可以看到返回结果的评分详细

升级

 备份数据

https://www.elastic.co/guide/en/elasticsearch/reference/current/backup.html

Upgrade From Upgrade To Supported Upgrade Type

0.90.x

1.x, 2.x

Full cluster restart

< 0.90.7

0.90.x

Full cluster restart

>= 0.90.7

0.90.x

Rolling upgrade

1.0.0 - 1.3.1

1.x

Rolling upgrade (if indices.recovery.compress set to false)

>= 1.3.2

1.x

Rolling upgrade

1.x

2.x

Full cluster restart

 

插件

安装插件

$ES_HOME/bin/plugin  加 -h 参数可以查看功能

$ES_HOME/bin/plugin list查看已经安装的插件

建议安装插件head

安装方法:$ES_HOME/bin/plugin -install mobz/elasticsearch-head

中文分词插件ik安装方法

http://my.oschina.net/xiaohui249/blog/232784 (没试是否可以成功,记得大概是这样的)

 

json查看:http://json.iapolo.com/

分享到:
评论

相关推荐

    ElasticSearch分享ppt40页+.pptx

    总的来说,ElasticSearch因其强大的搜索和分析能力、分布式特性及广泛的集成支持,成为Java学习者和技术分享者的重要工具。它不仅适用于日志分析、实时搜索,还广泛应用于监控、物联网、内容管理系统等多个领域。...

    ES查询客户端,elasticsearch可视化工具 elasticsearch查询客户端

    Elasticsearch(简称ES)是一款强大的开源搜索引擎,广泛应用于数据检索、分析和管理。作为分布式、RESTful风格的搜索和数据分析引擎,Elasticsearch能够提供实时、高可用性以及可扩展的搜索功能。在进行日常的数据...

    elastic-search技术分享.pptx

    1、以漫画的形式介绍了ES的搜索原理 2、与MySQL对比之下的概念解释 3、直接写SQL语句调用ES 4、一些SQL语句无法实现的查询使用DSL 5、应用场景

    Elasticsearch技术点分享.ppt

    Elasticsearch基本概念、内部底层原理、应用场景的介绍

    elasticsearch 8.11.3 windows安装包

    Elasticsearch 是位于 Elastic Stack 核心的分布式搜索和分析引擎。Logstash 和 Beats 有助于收集、聚合和丰富您的数据并将其存储在 Elasticsearch 中。Kibana 使您能够以交互方式探索、可视化和分享对数据的见解,...

    Elasticsearch 的分享

    ### Elasticsearch 分享知识点总结 #### 一、Elasticsearch 概览 **定义与特性:** Elasticsearch(简称 ES)是一款开源的、基于 Lucene 的搜索引擎,它提供了分布式的多用户能力的全文搜索引擎,基于 RESTful Web...

    elasticsearch-7.17.6及对应版本IK分词

    elasticsearch-7.17.6及对应版本IK分词 适合人群:elasticsearch初学者 Elasticsearch 是位于 Elastic Stack 核心的分布式搜索和分析引擎。Logstash 和 Beats 有助于收集、聚合和丰富您的数据并将其存储在 Elastic...

    Elasticsearch分享.pptx

    Elasticsearch,简称ES,是一种分布式、实时的搜索与分析引擎,同时也是一种实时存储系统。它的核心基于Apache Lucene,提供了高效、先进的全文搜索引擎,并且通过RESTful接口隐藏了Lucene的复杂性,使得全文搜索变...

    elasticsearch 学习笔记实用知识库分享知识分享

    Elasticsearch 学习笔记实用知识库分享知识分享 Elasticsearch 是一个基于 Lucene 库的开源搜索引擎,提供了全文搜索、结构化搜索和分析等功能。本文档将分享 Elasticsearch 的学习笔记,涵盖从基础概念到高级应用...

    分布式搜索引擎Elasticsearch开发实战基础篇 (ElasticSearch、ELK、搜索引擎、Lucene).rar

    分享一套完整版视频课程——分布式搜索引擎Elasticsearch开发实战基础篇 (ElasticSearch、ELK、搜索引擎、Lucene),本教程旨在带领大家进入搜索引擎领域,从无到有,深入浅出的讲解了什么是搜索引擎,搜索引擎的...

    7_Elasticsearch笔记.pdf

    Elasticsearch笔记 Elasticsearch是基于Lucene的开发的搜索引擎,它支持分布式、多用户访问,可以轻松的扩展到上百台服务器,是近实时的搜索引擎,而...Elasticsearch的安装和使用非常方便,能够满足各种搜索需求。

    elasticsearch windows 7.17.16 解压安装包

    Elasticsearch 是位于 Elastic Stack 核心的分布式搜索和分析引擎。Logstash 和 Beats 有助于收集、聚合和丰富您的数据并将其存储在 Elasticsearch 中。Kibana 使您能够以交互方式探索、可视化和分享对数据的见解,...

    Elasticsearch官方提供数据案例account.json

    一旦数据被索引,就可以使用Elasticsearch的强大的查询和分析功能。例如,可以查询所有交易金额大于100的账户,或者找出最近30天内有交易的账户。Elasticsearch支持多种查询语法,包括简单查询、过滤器、聚合、脚本...

    elasticsearch ik插件

    Elasticsearch(简称ES)是一款强大的开源搜索引擎,它提供了全文检索、分析和分布式存储等能力。在处理中文文本时,为了更好地进行分词和理解语义,通常需要安装适合中文的分析器。这时,Elasticsearch IK插件就...

    ES原理分享PPT,可以部门或者团队作为分享

    Elasticsearch(ES)是一个基于RESTful API设计的开源分布式搜索引擎,它的核心技术是建立在Apache Lucene之上。ES不仅是一个搜索引擎,还同时扮演着分布式文档数据库的角色,这意味着它能够高效地处理和存储大量...

    elasticsearch_ES_Elasticsearch界面_elasticsearch_源码

    **Elasticsearch(ES)详解** Elasticsearch是一款开源、分布式、实时的全文搜索引擎,它基于Lucene构建,被广泛用于大数据分析、日志聚合、实时搜索和索引等场景。其强大的功能和易用性使得它在IT行业中备受青睐。...

    elasticsearch 7.17.16 linux 解压安装包

    Elasticsearch 是位于 Elastic Stack 核心的分布式搜索和分析引擎。Logstash 和 Beats 有助于收集、聚合和丰富您的数据并将其存储在 Elasticsearch 中。Kibana 使您能够以交互方式探索、可视化和分享对数据的见解,...

    elasticsearch_18实用知识库分享

    Elasticsearch 实用知识库分享 ...本资源库分享了 Elasticsearch 的多个方面的知识点,涵盖了基本概念、查询优化、安全策略、Java 集成、数据处理等多个方面,为开发者和使用者提供了有价值的参考。

    Elasticsearch API

    无论是使用Elasticsearch进行数据搜索、分析还是数据聚合,了解其核心概念、集群架构和API的使用,都是非常必要的。通过阅读官方文档、参考书籍和社区分享,可以快速入门Elasticsearch,并在实际项目中得到有效应用...

    elasticsearch-7.10.2、kibana-7.10.2 Windows 版.zip

    Elasticsearch 与 Kibana 是两个非常重要的开源工具,广泛应用于日志分析、数据可视化以及实时搜索领域。这个压缩包包含的是 Elasticsearch 7.10.2 和 Kibana 7.10.2 的 Windows 版本,是专门为在 Windows 操作系统...

Global site tag (gtag.js) - Google Analytics