`
java--hhf
  • 浏览: 309127 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

ElasticSearch安装与基本使用

阅读更多

【零】简介

        Elasticsearch是一个基于Apache Lucene(TM)的开源搜索引擎,分布式,十分高效。

主要的特点:

  • 分布式的实时文件存储,每个字段都被索引并可被搜索
  • 分布式的实时分析搜索引擎
  • 可以扩展到上百台服务器,处理PB级结构化或非结构化数据

【一】下载、安装、启动、安装插件

sudo wget https://download.elasticsearch.org/elasticsearch/release/org/elasticsearch/distribution/zip/elasticsearch/2.1.1/elasticsearch-2.1.1.zip
sudo unzip elasticsearch-2.1.1.zip
sudo mv /home/username/elasticsearch-2.1.1 /usr/lib/elasticsearch
#启动
sudo ./bin/elasticsearch

 启动报错 

[huanghaifeng@vm20251 elasticsearch]$ sudo ./bin/elasticsearch
Exception in thread "main" java.lang.RuntimeException: don't run elasticsearch as root.
	at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:93)
	at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:144)
	at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:285)
	at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:35)
Refer to the log for complete error details.

 原因是,ElasticSearch不能作为root启动 

sudo chown huanghaifeng elasticsearch
sudo chown huanghaifeng elasticsearch/*
sudo chown huanghaifeng:huanghaifeng elasticsearch/log
./bin/elasticsearch

  用自己的账户开启,Permission denied;用sudo,直接不给开起

  检查是否开启

curl 'http://localhost:9200/?pretty'
#输出
{
  "name" : "Torrent",
  "cluster_name" : "elasticsearch",
  "version" : {
    "number" : "2.1.1",
    "build_hash" : "40e2c53a6b6c2972b3d13846e450e66f4375bd71",
    "build_timestamp" : "2015-12-15T13:05:55Z",
    "build_snapshot" : false,
    "lucene_version" : "5.3.1"
  },
  "tagline" : "You Know, for Search"
}

 安装插件

./bin/plugin -h
./bin/plugin install mobz/elasticsearch-head
./bin/plugin list
#其他常用的插件安装
http://www.cnblogs.com/wgp13x/p/4859680.html

打开http://10.60.81.183:9200/_plugin/head/出现问题,一直是“无法显示此网页”。
解决办法

#检查监听网络
netstat -an
#编辑配置文件,添加network.host和http.port
vi elasticsearch.yml
# ---------------------------------- Network -----------------------------------
# Set the bind address to a specific IP (IPv4 or IPv6):
network.host: 10.60.81.183
# Set a custom port for HTTP:
http.port: 9200

 重启elasticsearch,即可打开网页

最后给出一个对应关系,让读者理解elasticsearch

Relational DB -> Databases -> Tables -> Rows -> Columns
Elasticsearch -> Indices   -> Types  -> Documents -> Fields

【二】新建索引、简单查询、基本使用

 API :  curl -X<VERB> '<PROTOCOL>://<HOST>:<PORT>/<PATH>?<QUERY_STRING>' -d '<BODY>'

 

  • VERB HTTP方法:GET, POST, PUT, HEAD, DELETE
  • PROTOCOL http或者https协议(只有在Elasticsearch前面有https代理的时候可用)
  • HOST Elasticsearch集群中的任何一个节点的主机名,如果是在本地的节点,那么就叫localhost
  • PORT Elasticsearch HTTP服务所在的端口,默认为9200
  • PATH API路径(例如_count将返回集群中文档的数量),PATH可以包含多个组件,例如_cluster/stats或者_nodes/stats/jvm
  • QUERY_STRING 一些可选的查询请求参数,例如?pretty参数将使请求返回更加美观易读的JSON数据
  • BODY 一个JSON格式的请求主体(如果请求需要的话) 
#插入数据
PUT /megacorp/employee/1
{
    "first_name" : "John",
    "last_name" :  "Smith",
    "age" :        25,
    "about" :      "I love to go rock climbing",
    "interests": [ "sports", "music" ]
}
#查询数据量
curl -XGET 'http://localhost:9200/_count' -d '
{
    "query":{
        "match_all":{}
    }
}'
#查询单个文档详情
curl -XGET  http://10.60.81.183:9200/megacorp/employee/1?pretty
#简单查询接口调用
GET /megacorp/employee/_search?pretty
#添加条件检索
curl -XGET  http://10.60.81.183:9200/megacorp/employee/_search?q=last_name:Smith
【三】DSL(Domain Specific Language特定领域语言)查询(POST)
#模糊查询查询,以空格为区分的单词匹配
#返回结果是包含查询条件里面的一个或多个词
{
    "query" : {
        "match" : {
            "last_name" : "Smith"
        }
    }
}
#全词匹配,又称为短语匹配,将match关键词改为match_phrase即可
#过滤器
{
  "query": {
    "filtered": {
      "filter": {
        "range": {
          "age": {
            "gt": "20"
          }
        }
      },
      "query": {
        "match": {
          "last_name": "smith"
        }
      }
    }
  }
}
 elasticsearch的结果默认按照结果相关性分数(_score)排序。
#使用DSL做统计分析
#姓氏为smith的人中,有各种爱好的人平均年龄
{
  "query": {
    "match": {
      "last_name": "smith"
    }
  },
  "aggs": {
    "all_interests": {
      "terms": {
        "field": "interests"
      },
      "aggs": {
        "avg_age": {
          "avg": {
            "field": "age"
          }
        }
      }
    }
  }
}

 
#附上一篇比较完整的查询语句
{
  "query": {
    "filtered": {
      "query": {
        "bool": {
          "must": [
            {
              "match": {
                "IsDel": "0"
              }
            }
          ]
        }
      },
      "filter": {
        "bool": {
          "must": [
            {
              "range": {
                "PostDate": {
                  "gt": "2015-08-05 09:00:00",
                  "lt": "2015-09-02 09:00:00"
                }
              }
            }
          ]
        }
      }
    }
  },
  "sort": [
    {
      "PostDate": {
        "order": "desc"
      },
      "ID": {
        "order": "desc"
      }
    }
  ],
  "size": 20,
  "from": 0
}
 (更多详细内容请关注后续总结文章)
  • 大小: 51.2 KB
分享到:
评论

相关推荐

    elasticsearch1.6.0的安装和基本使用(cent6.5安装)

    Elasticsearch 1.6.0 的安装和基本使用(CentOS 6.5 安装) Elasticsearch 是一个基于 Lucene 的搜索引擎,提供了一个分布式的、可扩展的搜索引擎解决方案。下面是 Elasticsearch 1.6.0 的安装和基本使用步骤。 1....

    elasticsearch服务器安装包

    在安装Elasticsearch之前,我们需要了解一些基本概念和步骤: 1. **Java运行环境**:Elasticsearch是用Java编写的,因此,安装前必须确保系统上已安装了JDK,并且版本至少为8。可以通过`java -version`命令检查Java...

    elasticsearch-sql安装使用文档.docx

    【Elasticsearch-SQL安装与使用详解】 Elasticsearch(简称ES)是一个强大的分布式全文搜索引擎,而Elasticsearch-SQL插件则使得我们能够通过熟悉的SQL语法来查询ES中的数据,极大地降低了使用门槛,尤其对熟悉关系...

    (狂神)ElasticSearch快速入门笔记,ElasticSearch基本操作以及爬虫(Java-ES仿京东实战)

    (狂神)ElasticSearch快速入门笔记,ElasticSearch基本操作以及爬虫(Java-ES仿京东实战),包含了小狂神讲的东西,特别适合新手学习,笔记保存下来可以多看看。好记性不如烂笔头哦~,ElasticSearch,简称es,es是一个...

    elasticsearch与kibana环境安装与es的基本操作.docx

    **Elasticsearch与Kibana环境安装** 在安装Elasticsearch和Kibana之前,确保你的Linux环境已经安装了Java Development Kit (JDK)。Elasticsearch和Kibana都需要JDK来运行。接下来,你需要下载对应的安装包,这里是...

    Elastic Search搭建使用教程.pdf(内含ElasticSearch教程权威指南)

    这种设计使得Elasticsearch易于使用,并且可以与任何支持HTTP和JSON的编程语言配合。为了在Java项目中使用Elasticsearch,官方推荐使用JavaHighLevelRESTClient。该客户端提供了简单易用的API进行文档的索引、搜索和...

    Elasticsearch安装手册

    ### Elasticsearch安装手册知识点详解 #### 一、Elasticsearch概述 ...通过上述步骤,我们不仅完成了Elasticsearch的基本安装,还解决了常见的权限问题,确保了系统的安全性。这为后续的使用和管理打下了坚实的基础。

    elasticsearch7.14.0.zip

    7. **插件安装与使用**:将插件源码导入到Elasticsearch项目中,通过Maven或Gradle构建并安装。在配置文件中启用插件,并重启Elasticsearch以应用改动。之后可以在查询语句中使用插件提供的功能。 8. **集群配置**...

    Elasticsearch5.4.1 安装配置 +Kibana

    ### Elasticsearch 5.4.1 安装与配置详解 #### 一、Elasticsearch简介 Elasticsearch是一个基于Lucene的开源搜索和分析引擎,适用于各种类型的数据,包括文本、数字、地理空间数据等。它能够提供快速的全文搜索能力...

    elasticsearch-head 可视化界面

    1. **版本兼容性**:确保Elasticsearch-Head版本与运行的Elasticsearch版本相匹配,否则可能无法正常工作。 2. **安全警告**:不要在生产环境中直接暴露Elasticsearch-Head,因为这可能暴露出敏感信息。 总的来说,...

    Elasticsearch_python使用文档

    以上就是 Elasticsearch Python 客户端的基本使用方法,包括创建 Index、插入、查询和删除数据,以及一些高级查询操作。实际使用中,你还可以根据需求探索更多的搜索、过滤和聚合功能。记住,错误处理是关键,可以...

    elasticSearch(ES)最新版 ik分词插件7.10 elasticsearch-analysis-ik-7.10.0

    在实际使用中,你需要将这些jar文件复制到Elasticsearch的lib目录下,并通过Elasticsearch的命令行工具或API来安装和启用IK分词插件。配置文件的修改可以定制化分词行为,例如添加自定义字典,以适应特定领域的词汇...

    elasticsearch7.17.11版本分词器插件安装包

    本文将详细介绍适用于Elasticsearch 7.17.11版本的分词器插件的安装与使用。 首先,让我们关注"elasticsearch-analysis-ik-7.17.11.jar"这个文件,它是IK分词器的特定版本。IK分词器(Intelligent Chinese Analyzer...

    elasticsearch安装套件

    8. **数据导入与查询**:使用`curl`命令或客户端工具(如Kibana、Logstash、Beats等)向Elasticsearch导入数据,并进行搜索、聚合等操作。 安装完成后,你可以开始探索Elasticsearch的强大功能,比如实时数据分析、...

    Elasticsearch 8.1.2 Linux版本

    **Elasticsearch 8.1.2 Linux 版本详解** ...Elasticsearch 8.1.2在Linux上的部署和使用,涉及了从基础概念理解、安装配置到实际操作的各个环节。通过深入学习和实践,可以充分发挥其在大数据环境中的搜索和分析能力。

    ElasticSearch-head插件

    而Elasticsearch-head插件由于更新较慢,可能无法支持最新版本的Elasticsearch,因此在实际使用中需要考虑兼容性问题。 总的来说,Elasticsearch-head插件是一个轻量级且实用的Elasticsearch可视化工具,尤其适合...

    JAVA实现ElasticSearch的简单实例

    3. **Elasticsearch安装与配置**:在开始编写Java程序之前,你需要在本地或者服务器上安装Elasticsearch。这通常涉及到下载最新版本的ES,解压并启动服务。配置可能包括修改`elasticsearch.yml`文件以适应你的环境...

    基于.netcore搜索封装ElasticSearch.zip

    在.NET Core中使用Elasticsearch,可以借助各种客户端库,实现与Elasticsearch服务器的交互,执行索引、查询、更新和删除等操作。 这个"TCT.Net.Base.ElasticSearch"库很可能是一个封装了Elasticsearch.NET和Nest的...

Global site tag (gtag.js) - Google Analytics