elasticsearch
珊瑚海的世界
这个作者很懒,什么都没留下…
展开
-
ElasticSearch中文分词IK安装
elasticsearch-analysis-ik是一款中文的分词插件,支持自定义词库。安装步骤:1、到github网站下载源代码,网站地址为:https://github.com/medcl/elasticsearch-analysis-ik右侧下方有一个按钮“Download ZIP",点击下载源代码elasticsearch-analysis-ik-master.zip。2、转载 2016-05-06 13:22:28 · 699 阅读 · 0 评论 -
ElasticSearch(七)-结构化查询
1.请求体查询 要点:GET /_search{ "from": 30, "size": 10}进行分页 2.DSL应该单独学习;3.查询与过滤 一个查询语句会计算每个文档与查询语句的相关性,会给出一个相关评分_score; 一般情况下:经过花村的过滤查询要远胜一条查询语句的执行效率 4.重要的查询过滤语句 term过滤:精翻译 2016-05-19 16:50:21 · 942 阅读 · 0 评论 -
ElasticSearch之定时删除数据
有的时候我们在使用ES时,由于资源有限或业务需求,我们只想保存最近一段时间的数据,所以有如下脚本可以定时删除数据delete_es_by_day.sh#!/bin/sh# example: sh delete_es_by_day.sh logstash-kettle-log logsdate 30index_name=$1daycolumn=$2savedays=$3form原创 2016-05-09 13:22:16 · 12661 阅读 · 1 评论 -
ElasticSearch(八)-排序(相关性算法)
1.排序 Sort排序,如果是date,会转化成毫秒数; 如果强制计算其相关性,可以设置track_scores为true 默认排序:字段默认顺序排序,_score默认倒序 GET /_search?sort=date:desc&sort=_score&q=search "sort": { "dates": { "order": "asc",翻译 2016-05-19 16:53:08 · 13120 阅读 · 0 评论 -
ElasticSearch(九)-分布式搜索
搜索的执行过程分为两个阶段:查询后取回1.查询阶段 查询被向索引中每个分片副本广播,每个分片在本地执行搜索并建立匹配文档的优先队列。GET /_search{ "from": 90, "size": 10}这个优先队列的能容纳100个文档查询分为三步:如图可视化:(1)客户端发送一个search搜索请求给请求体node3,node3创建翻译 2016-05-19 16:58:55 · 790 阅读 · 0 评论 -
ElasticSearch(十)-索引管理
1.创建删除创建:put /myidnex{ “setting”:{}, “mapping”:{}}防止自动创建:可以在elasticsearch.yml中添加action.anto.create_index:false删除:delete /myindex1,myindex2delete /_all2.索引设置 number_of_shards主分片数,默认5翻译 2016-05-19 17:03:07 · 648 阅读 · 0 评论 -
ElasticSearch(十一)-深入分片
1.文本搜索 倒排索引存储写入磁盘的倒排索引是不可改变的:(1)不需要锁(2)一旦写入内存,因为不需改变,所以一直在那,有助性能(3)压缩数据,减少IO和内存大小占用 2.动态索引??段是不可改变的,文档不能从旧的段中删除,每个文档被删除只是.del文件中被标记删除,依然可以匹配查询,只是最终返回前被移除结果集中。更新就是先删除后插入 3.近实时搜索翻译 2016-05-19 17:20:02 · 752 阅读 · 0 评论 -
ElasticSearch(十二)-结构化搜索
结构化不关心文档的相关性或分数,只是简单的包含或排除。1.查找准确值 (1)过滤器查找匹配文档(2)创建字节集[1,0,0,0] (3)字节集存在内存中,我们能跳过1和2,能提升性能。 2.组合过滤 Must、must_not、should 3.查询多个准确值 Terms格式如: { "terms" : { "pri翻译 2016-05-19 17:23:27 · 679 阅读 · 0 评论 -
ElasticSearch(十三)-全文搜索(精度控制)
全文(full-text)检索如果一个date或int字段,被认为日期或整数。如果检索not_analyzed字段,他们会把整个查询作为一个短语。如果检索一个全文字段,查询会先用解析器解析查询语句,产生需要查询的短语列表,对每个短语进行低级查询,合并结果。 1.匹配查询match query2.多词查询 提高精度: GET /my_index/my_typ翻译 2016-05-19 17:26:18 · 1630 阅读 · 0 评论 -
ElasticSearch(六)-映射和分析过程
1.数据类型差异 不同类型的索引方式是不一样的,导致查询结果不一样;2.确切值和全文 确切值是确定的,比如foo和Foo不同 全文文本常常被称为高度结构化数据,而不是非结构化的数据 @为了方便全文文本字段中进行搜索查询,ES首先对文本进行分析,然后使用结果建立一个倒排索引。 3.倒排索引 倒排索引inverted index进行快速的全文检索;翻译 2016-05-19 16:40:27 · 847 阅读 · 1 评论 -
ElasticSearch(五)-搜索
ES可以结构化查询,也可以进行全文检索需要理解三个概念:Mapping、Analysis、Query DSL 1.空搜索 GET /_search响应:{ "hits" : { "total" : 14, "hits" : [ { "_index": "us", "_翻译 2016-05-19 16:33:26 · 635 阅读 · 0 评论 -
ElasticSearch数据导入Hive
从ES往hive中导入数据其实有很多方式,最基本的方法就是用es-java-api获取数据然后导入到hdfs中,就完了。但这种方式太过复杂,且通用性不高。下面介绍一种方便的导入方式:需要用到ES-hadoop插件:第一次需要安装插件: 下载地址:https://github.com/elasticsearch/elasticsearch-hadoop#readmeadd上面的原创 2016-05-06 14:17:32 · 9783 阅读 · 0 评论 -
Logstash之关系型数据库(mysql或oracle)数据入ElasticSearch
有的时候我们想把mysql或oracle中的数据导入到es中,有很多种方式,这里介绍一种很简单的方式,利用Logstash的jdbc-input插件可以实现。官方文档链接查看:https://www.elastic.co/guide/en/logstash/2.1/plugins-inputs-jdbc.html 譬如我们想把mysql中某一张表导入到ES中,Logstash的conf原创 2016-05-17 16:15:28 · 6340 阅读 · 2 评论 -
ElasticSearch之动态mapping模板
如果我们每天都要新建索引,而mapping需要提前设置,这个时候就需要用到动态模板;每日凌晨新建索引时,匹配template的索引即可自动创建mapping。下面有个模板的例子,供大家参考:(只要匹配news_wordcloud*的索引即可自动创建type为cms的mapping)#模板curl -XPUT localhost:9200/_template/template_news原创 2016-05-18 18:22:53 · 4479 阅读 · 0 评论 -
ElasticSearch之常用插件安装命令
#head监控安装,推荐bin/plugin -install mobz/elasticsearch-head#bigdesk集群状态,推荐bin/plugin -install lukas-vlcek/bigdesk#marvel监控安装bin/plugin -i elasticsearch/marvel/latest#es-sql安装,网页内有详细说明https://git原创 2016-05-19 11:27:50 · 3384 阅读 · 0 评论 -
ElasticSearch(一)-安装
一、环境介绍与安装准备 1、环境说明 3台虚拟机,ip分别为xxx.xxx.3.102、xxx.xxx.3.103和xxx.xxx.3.104。 2、安装准备 ElasticSearch(简称ES)由java语言实现,运行环境依赖java。ES 1.x版本,官方推荐至少使用jdk1.6的环境,建议使用oracle java,可以去官网下载,本原创 2016-05-06 13:11:09 · 505 阅读 · 0 评论 -
ElasticSearch(二)-分布式集群
1.空集群 一个节点就是es实例,具有相同的clustername;多个节点协同工作,分享数据,平衡负载,自动感应节点并平衡数据。主节点被自主选出,且不参与文档级别的变更与搜索。 2.集群监控GET/_cluster/health其中status字段颜色意义green所有主要分片和复制分片都可用翻译 2016-05-19 15:52:09 · 607 阅读 · 0 评论 -
ElasticSearch(三)-数据
数据吞吐 存储的格式为json格式文档; ES中每个字段的数据是默认被索引的;有一点需要注意,索引数据的操作只会发生在主分片(primary shard)上,而不会发生在分片副本(Replica)上。如果索引数据的请求发送到的节点没有合适的分片或者分片是副本,那么请求会被转发到含有主分片的节点。 1. 文档在ES中特指被序列化成json格式的数据其中一个文档翻译 2016-05-19 16:04:38 · 575 阅读 · 0 评论 -
ElasticSearch(四)-分布式文档存储
1.路由文档存储在分片的算法shard =hash(routing) % number_of_primary_shardsrouting值是一个任意字符串,默认为_id,可以自定义;从这可以看出,主分片的数量不能改变,假如改变文档的路由将全部失效。2.分片交互当我们发送请求,最好的做法是循环通过所有节点请求,这样可以平衡负载。3.新建和索引和删除文档翻译 2016-05-19 16:13:16 · 903 阅读 · 0 评论 -
Logstash之kafka数据入ElasticSearch
kafka里面的数据都是自定义拼接的字符串需要在logstash中filter做分割;如果是json格式,则会被自动解析,无需分割。下面样例:input{ kafka { zk_connect => "bdc41.hexun.com:2181,bdc40.hexun.com:2181,bdc46.hexun.com:2181,bdc54.hexun.com:原创 2016-05-09 15:43:00 · 3067 阅读 · 0 评论