Elasticsearch学习上手(一)

Elasticsearch是一个基于Apache Lucene(TM)的开源搜索引擎。一开始公司里一位同事是直接采用Luncene进行开发的,整体开发下来,代码量大,比较复杂,我就想要寻求一种更好的开发,更好维护的框架,然后发现了elasticsearch。
Elasticsearch的目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。

不过,Elasticsearch不仅仅是Lucene和全文搜索,我们还能这样去描述它:
分布式的实时文件存储,每个字段都被索引并可被搜索
分布式的实时分析搜索引擎
可以扩展到上百台服务器,处理PB级结构化或非结构化数据

而且,所有的这些功能被集成到一个服务里面,你的应用可以通过简单的RESTful API、各种语言的客户端甚至命令行与之交互。
上手Elasticsearch非常容易。它提供了许多合理的缺省值,并对初学者隐藏了复杂的搜索引擎理论。它开箱即用(安装即可使用),只需很少的学习既可在生产环境中使用。

Elasticsearch对系统的要求就是安装对应版本的java,elasticsearch2.x要求java1.7+,最新版5.x要求java1.8+
到elasticsearch.org/download选择版本下载,解压即可。

[root@cc ~]# wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-2.4.0.tar.gz
[root@cc ~]# tar -xvf elasticsearch.tar.gz

解压之后,可以直接通过命令进行启动

./bin/elasticsearch

ps:elasticsearch5.x这边可能会碰到启动不成功的问题,因为5.x开始会有一个jvm的配置文件jvm.options,这边默认jvm内存为4G

之后可以通过浏览器或者在另一个窗口进行测试 :http://localhost:9200/?pretty
如有类似以下返回则说明成功了:

{
    "cluster_name": "elasticsearch",
    "name": "node-1",
    "tagline": "You Know, for Search",
    "version": {
        "build_hash": "ce9f0c7394dee074091dd1bc4e9469251181fc55",
        "build_snapshot": false,
        "build_timestamp": "2016-08-29T09:14:17Z",
        "lucene_version": "5.5.2",
        "number": "2.4.0"
    }
}

单纯通过api很不直观,幸好elasticsearch提供了插件的安装,我这边安装elasticsearch-head插件
对于2.x版本可以直接通过以下命令进行安装

./bin/plugin install mobz/elasticsearch-head

然后访问 http://localhost:9200/_plugin...就可以看到类似一下界面


就可以在此界面上进行数据的管理了

对于5.x版本之后,elasticsearch-head则可以需要以一个独立的node项目运行

git clone git://github.com/mobz/elasticsearch-head.git
cd elasticsearch-head
npm install
grunt server

然后访问http:// localhost:9100 /就可以了
在这个版本下,需要在elasticsearch.yml中进行配置才能让head进行连接
我这边的配置是这样的:

http.cors.enabled: true
http.cors.allow-origin: /https?:\/\/localhost(:[0-9]+)?/

你可能感兴趣的:(lucene,搜索引擎,java,elasticsearch)