elasticsearch + Kinaba + elasticsearch-head 安装

Elasticsearch 在公司的使用越来越广,很多同事之前并没有接触过 Elasticsearch,所以,最近在公司准备了一次关于 Elasticsearch 的分享,整理成此文。此文面向 Elasticsearch 新手,老司机们可以撤了。

Elasticsearch 是一个分布式的搜索和分析引擎,可以用于全文检索、结构化检索和分析,并能将这三者结合起来。Elasticsearch 基于 Lucene 开发,现在是使用最广的开源搜索引擎之一,Wikipedia、Stack Overflow、GitHub 等都基于 Elasticsearch 来构建他们的搜索引擎。

在国内还有一个xunsearch占用资源比较低,他只有搜索的功能,分析引擎要自己写。在国内用的企业也比较多,比如小米等一些手机官网都用这个,比较使用的起来比较简单。可以使用mysql
Elasticsearch 就比较吃资源了,如果你的电脑没有2G的话,拿就不好意思了,我在虚拟上运行也要开2G才能运行这个程序
还有本文中的 Elasticsearch 使用的是Elasticsearch 5 你的JAVA SDK 必须为 JAVA SDK 8
下面的全是笔记

流程图

github elasticsearch-rtf
github elasticsearch-head

elasticsearch配置
编辑 config/elasticsearch.yml
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-methods: OPTIONS, HEAD, GET, POST, PUT, DELETE
http.cors.allow-headers: "X-Requested-With,Content-Type,Content-Length,X-User"

#安装kibana

集群:一个或者多个节点组织在一起

节点:一个节点是集群中的一个名字来标识,默认是一个随机的漫画角色的名字

分片:将索引划分为多份的能力,允许水平分割和扩展容量,多个分片相应请求,提高性能和吞吐量

副本:创建分片的一份或者多份的能力,在一个节点失败其余节点可以顶上

倒排索引待解决的问题

  1. 大小写转换问题,入python和PYTHON应该为一个词
  2. 词干抽取,looking和look应该为处理的一词
  3. 分词,若屏蔽系统 应该分词为“屏蔽”、“系统”还是为了“屏蔽系统”
  4. 倒排索引文件过大 - 压缩编码

安装elasticsearch-rtf(中文集成包)


git clone https://github.com/medcl/elasticsearch-rtf
#具体操作请看 https://github.com/medcl/elasticsearch-rtf

#注意elasticsearch默认是不支持使用root运行的
so you must to do this:
    groupadd elsearch
    useradd elsearch -g elsearch -p elasticsearch
    
next:
    su elsearch

看到此图就为成功,我已经是做了nginx 的方向代理了,在本机使用host访问到虚拟机中

Paste_Image.png

安装elasticsearch-head(elasticsearch一个管理工具)

具体操作看
    https://github.com/mobz/elasticsearch-head
主意的是:这里要使用到node.js 最好使用node.js 6 左右的版本 很多linux的包都是4的,node 4 的api 比较弱

还有就是一定要用cnpm 下载 不是在下载 phantomjs的时候超级慢,npm yarn 都卡在哪里

还有就是使用docker 安装啦,最简单最安全

注意!!!
    如果你在linux上面请不要第一种方法!
    有依赖不能在linux上运行,和laravel的前端开发框架一样 fsevents
Paste_Image.png
Paste_Image.png

Kibana 安装 (elasticsearch 一个操作工具)

必须对应elasticsearch的版本,怎么看版本 回去上面看看


wget https://artifacts.elastic.co/downloads/kibana/kibana-5.1.2-linux-x86_64.tar.gz

tar -xvf 解压
cd 进去
/bin/kibana
运行就好了

如果觉得慢的话
可以直接使用百度云下载喔
链接:http://pan.baidu.com/s/1kVxLaMr 密码:7ufu
然后用FZ工具上传上去解压就好了
Paste_Image.png

Kibana 对 elasticsearch的操作

#es  de 的文档、索引的CRUD操作
#索引初始化操作
#指定分片和副本的数量
#shards一旦设置不能修改
PUT lagou
{
    "settings":{
        "index":{
            "number_of_shards":5,
            "number_of_replicas":1
        }
    }
}

GET lagou/_settings
GET _all/_settings
GET .kibana,lagou/_settings
GET _setting

#更新settings
PUT lagou/_settings{
    "number_of_replicas":2
}

#获取全部的索引
GET _all
GET lagou

#保存文档
PUT lagou/job/
{
    "title":"python分布式爬虫开放",
    "salary_min":15000,
    "city":"北京",
    "company":{
        "name":"百度",
        "company_addr":"北京市软件园"
    },
    "publish_date":"2017-4-16",
    "comments":15
}

GET lagou/job/1
GET lagou/job/1?_source=title
GET lagou/job/1?_source=title,city

POST lagou/job/1/_update{
    "doc":{
        "comments":20
    }
}

#删除
DELETE lagou/job/1
DELETE lagou/job
DELETE lagou

批量操作

GET _mget

GET testdb/job1/_mget
{
    "docs":[
        {
            "_id":1
        },{
            "_id":2
        }
    ]
}

GET testdb/_mget{
    "docs":{
        "_id":[1,2]
    }
}

#bulk批量操作
POST _bulk 指明数据

映射(mapping)

作用:会让索引建立的更加完善
类型:静态映射和动态映射
string:text ,keyword(string类型在es5开始已经废除)

数字类型:long,integer,short,byte,double,float
日期:date
bool:boolean
binary类型:binary
obiject,nested
geo-opingt,geo-shape
ip,competion

属性
store
index
null_value
analyzer
include_in_all
format

搜索

elasticsearch-ik 索引要有 ik_max_word

#match查询
GET lagou/_search
{
    "query":{
        "match":{
            "title":"python"
        }
    }
}

#term查询 不分词
GET lagou/_search
{
    "query":{
        "term":{
            "title":"python"
        }
    }
}

#terms查询 不分词
GET lagou/_search
{
    "query":{
        "terms":{
            "title":["python","工程师","系统","django"]
        }
    }
}

#控制查询返回数量
GET lagou/_search
{
    "query":{
        "match":{
            "title":"python"
        },
        "from":0,
        "size":2
    }
}

#match_all 查询

GET lagou/_search
{
    "query":{
        "match_all":{},
        "from":0,
        "size":2
    }
}

基本教程这里结束了

最好要解决的就是怎么同步mysql 的数据到 elasticsearch,为什么这么说呢!我一开始也不知道的,后面谷歌了之后才发现原理elasticsearch也就是一个数据库的存在

笔者还没有试过 github 使用 elasticsearch-jdbc比较多
http://www.cnblogs.com/zhongshengzhen/p/elasticsearch_mysql.html
这里是传送门

然后就看你们的程序语言对elasticsearch的支持程度
在laravel(PHP) 上laravel-search 是mmanos出的

composer require mmanos/laravel-search dev-master

使用传送门

http://laravelacademy.org/post/3781.html
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,590评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,808评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,151评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,779评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,773评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,656评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,022评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,678评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,038评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,756评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,411评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,005评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,973评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,053评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,495评论 2 343

推荐阅读更多精彩内容