ElasticSearch之一——索引】的更多相关文章

ElasticSearch+Kibana 索引操作 一 前言 ElasticiSearch 简介 ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口.Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎.设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便. 因为在工作的项目中有使用到所以写下相关的内容,并附带源码 感兴趣的朋友可以自…
目录 1 索引模板概述 1.1 什么是索引模板 1.2 索引模板中的内容 1.3 索引模板的用途 2 创建索引模板 3 查看索引模板 4 删除索引模板 5 模板的使用建议 5.1 一个index中不能有多个type 5.2 设置_source = false 5.3 设置_all = false 5.4 设置dynamic = strict 5.5 使用keyword类型 1 索引模板概述 1.1 什么是索引模板 索引模板: 就是把已经创建好的某个索引的参数设置(settings)和索引映射(m…
参考文档:https://es.xiaoleilu.com/010_Intro/00_README.html 一.索引操作 1.查看当前节点的所有的index 查看当前节点的所有的index [root@es1 ~]# curl -X GET 'http://10.87.6.2:9200/_cat/indices?v' health status index uuid pri rep docs.count docs.deleted store.size pri.store.size green…
近发现elasticsearch近期索引文件大的吓人,清理了下之前的索引文件,发现服务器性能大大的减轻了一半,想一直保留近一个月的索引文件,但是又不想每个月手动清楚,在此写了一个小脚本 查询索引: curl -XGET 'http://127.0.0.1:9200/_cat/indices/?v' 一. 手动删除 rm -rf *--* 二.api删除 curl -XDELETE 'http://127.0.0.1:9200/logstash-2016-07-*' 清理掉了所有 3月份的索引文件…
0x00 ElasticSearch的索引和MySQL的索引方式对比 Elasticsearch是通过Lucene的倒排索引技术实现比关系型数据库更快的过滤.特别是它对多条件的过滤支持非常好,比如年龄在18和30之间,性别为女性这样的组合查询. 倒排索引很多地方都有介绍,但是其比关系型数据库的b-tree索引快在哪里?到底为什么快呢? 笼统的来说,b-tree索引是为写入优化的索引结构.当我们不需要支持快速的更新的时候,可以用预先排序等方式换取更小的存储空间,更快的检索速度等好处,其代价就是更新…
如果elasticsearch删除索引报错 curl -X DELETE 'http://10.73.26.66:9200/httpd-34-2017.08.15' {"error":{"root_cause":[{"type":"illegal_argument_exception","reason":"text is empty"}],"type":"i…
全文检索的应用越来越广泛,几乎成了互联网应用的标配,商品搜索.日志分析.历史数据归档等等,各种场景都会涉及到大批量的数据,在全文检索方面,方案无外乎Lucene.Solr.Elasticsearch三种应用的较为广泛.es.solr的底层都依托于Lucene,但es比solr学习成本更低,由于其提供的RESTful API简单快捷,对互联网应用开发而言更是如虎添翼. 下面结合以实际案例,通过Java API的形式操作es数据集. 框架选型基础是Spring Boot + Spring-data-…
在使用Eleasticsearch进行索引维护的过程中,如果你的应用场景需要频繁的大批量的索引写入,再使用上篇中提到的维护方法的话显然效率是低下的,此时推荐使用bulkIndex来提升效率.批写入数据块的大小取决于你的数据集及集群的配置. 下面我们以Spring Boot结合Elasticsearch创建一个示例项目,从基本的pom配置开始 <dependency>    <groupId>com.google.code.gson</groupId>    <ar…
一.简介 在ElasticSearch里没有专门的数组类型,任何一个字段都可以有零个和多个值.当字段值的个数大于1时,字段类型就变成了数组. 下面以视频数据为例,介绍ElasticSearch如何索引数组数据,以及如何检索数组中的字段值. 测试视频数据格式如下: { "media_id": 88992211, "tags": ["电影","科技","恐怖","电竞"] } media_i…
ElasticSearch索引重建 ElasticSearch索引一旦建立,便不可修改索引字段类型(允许增加或者删除该字段) 例如从Integer类型修改为long类型,这是不被允许的,错误信息如下: 1 { 2 "error" : { 3 "root_cause" : [ 4 { 5 "type" : "illegal_argument_exception", 6 "reason" : "map…
一 前言 ElasticiSearch 简介 ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口.Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎.设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便. 因为在工作的项目中有使用到所以写下相关的内容,并附带源码 感兴趣的朋友可以自己玩一玩,整个项目都是在Linux上跑的,所以安装步…
在Elasticsearch中,一般的查询都支持多索引. 只有文档API或者别名等不支持多索引操作,因此本篇就翻译一下多索引相关的内容. 首先,先插入几条数据: $ curl -XPOST localhost:9200/test1/test/1 -d '{"name":"test1"}' $ curl -XPOST localhost:9200/test1/test/2 -d '{"name":"test1"}' $ curl…
ElasticSearch索引 ElasticSearch 是一个分布式可扩展的实时搜索引擎,它建立在开源搜索引擎框架Apache Lucene基础上.ElasticSearch 不但包括了全文搜索功能,还支持一下特性:1.分布式实时文件存储,将每一个字段都编入索引,使其可以被搜索:2.实时分析的分布式搜索引擎:3.可以扩展到上百台服务器,处理PB级别的结构化或非结构化数据: 1.与ElasticSearch 通信 Java API 如果使用Java,ElasticSearch(简写ES) 内置…
因为ElasticSearch是一个基于Lucene的搜索服务器.Lucene的索引有个难以克服的限制,导致Elasticsearch的单个分片存在最大文档数量限制,一个索引分片的最大文档数量是20亿.亲测.…
 在Elasticsearch中,一般的查询都支持多索引.只有文档API或者别名API等不支持多索引操作,因此本篇就翻译一下多索引相关的内容. 首先,先插入几条数据: $ curl -XPOST localhost:9200/test1/test/1 -d '{"name":"test1"}' $ curl -XPOST localhost:9200/test1/test/2 -d '{"name":"test1"}' $ c…
目标:将json格式的两类日志输出到elasticsearch两类索引 1. 安装logstash. 2. 编写logstash处理配置文件,创建一个test.conf文件,内容如下: input { file { path => "/home/vagrant/logstash/logstash-2.2.2/dbpool-logs/dev/common-sql-*.log" start_position => "beginning" type =>…
目录 1 Lucene操作document的流程 1.1 添加document的流程 1.2 删除document的流程 2 优化写入流程 - 实现近实时搜索 2.1 流程的改进思路 2.2 设置refresh的间隔 3 优化写入流程 - 实现持久化变更 3.1 文档持久化到磁盘的流程 3.2 基于translog和commit point的数据恢复 4 优化写入流程 - 实现海量segment文件的归并 4.1 存在的问题 4.2 merge操作的流程 4.3 优化merge的配置项 4.4…
为什么需要索引模板? 在实际工作中针对一批大量数据存储的时候需要使用多个索引库,如果手工指定每个索引库的配置信息(settings和mappings)的话就很麻烦了. 所以,这个时候,就存在创建索引模板的必要了!!1 索引可使用预定义的模板进行创建,这个模板称作Index templates.模板设置包括settings和mappings,通过模式匹配的方式使得多个索引重用一个模板. 更多,请见 https://www.elastic.co/guide/en/elasticsearch/refe…
一,模板简述:template大致分成setting和mappings两部分:索引可使用预定义的模板进行创建,这个模板称作Index templates.模板设置包括settings和mappings,通过模式匹配的方式使得多个索引重用一个模板. 1. settings主要作用于index的一些相关配置信息,如分片数.副本数,tranlog同步条件.refresh等. 2. mappings主要是一些说明信息,大致又分为_all._source.prpperties这三部分:      (1)…
前言 这篇文章详细介绍了如何创建索引和某个类型的映射. 下文中[address]指代elasticsearch服务器访问地址(http://localhost:9200). 1       创建索引 1.1     简单创建语句 curl -XPUT [address]/blog 1.2     带参数的创建语句 curl -XPUT [address]/blog/ -d '{ "settings":{ "number_of_shards":1,     //设置分…
curl -XDELETE 'http://172.16.1.16:9200/logstash-2013.03.*' 清理掉了所有 3月份的索引文件,其中*是通配符 下面是主页上的详细介绍,其他部分可以自己看, http://www.elasticsearch.org/guide/reference/api/delete/ 参考地址:http://blog.51cto.com/storysky/1179906…
1.通过elasticsearch-head 创建 (1)登录localhost:9100 (2)点击复合查询 (3)输入内容 (4)勾选易读,点击验证是否是JSON格式 (5)点击提交请求,返回 { "acknowledged": true } 2.通过postman来创建索引: (1)选择请求格式PUT,输入请求访问地址:127.0.0.1:9200/peoper (2)选择下面的Body->raw->JSON(application/json) (3)创建索引,例如:…
[背景信息] ES一直以来对于已经创建好的索引的分片是不可以进行分割的,简单的说,当你创建了一个索引,并指定了number_of_shards为2,当随着数据量的不断增大,是无法将索引的shard扩充为4个或者8个的,当然,你可以通过重新创建索引,这个的前提是你的数据关联性并不大,业务上允许出现多个索引存在的场景. 在ES6.1版本之后,支持了索引shard的切分,与其说是支持了切分,不如说是提供了一个接口,将原有的数据可以快速复制到新的索引下,并保持数据结构的不变,仅仅是增加了索引分片. [使…
elasticsearch的重要概念 我们可以把elasticsearch当做数据库来理解: index:索引库名称,相当于关系型数据库中的表名,一个elasticsearch集群中可以有多个索引库. type:索引库中索引数据类型,为索引类型,是用来区分同索引库下不同类型的数据的,一个索引库下可以有多个索引类型. id:索引库中索引数据主键,唯一. 创建json document elasticsearch有多种创建json document的方式 1. 手写,比如 String json =…
示例数据文件document.json(index表示在索引中增加或替换现有文档,create表示如果文档不存在则添加文档,delete表示删除文档): { "index": { "_index": "addr", "_type": "contact", "_id": 1 }}{ "name": "Fyodor Dostoevsky", "…
1.用逗号将索引隔开,如: $ curl -XPOST http://localhost:9200/aaa,website/_search/ { "took": 1, "timed_out": false, "_shards": { "total": 10, "successful": 10, "failed": 0 }, "hits": { "total&…
经过前面几篇的学习,我们已经知道如何在Kibana里边对Elasticsearch进行操作了,那么如何查看已存在的索引呢,我们来看, 在Management里边可以看到我们刚刚创建的sdb索引.另外还可以看到sdb的索引是open状态,主分片有5个,副本集有3个,总共有三条记录,大小为17.3KB. 我们点sdb索引可以看到他具体的详细信息: 后面的就不一一截图了,可以自己的点的看一下.下面我们来介绍如何直接预览sdb中的数据呢 打开Index Patterns 到这里我们看到有我们刚才创建的s…
正向索引的结构如下: “文档1”的ID > 单词1:出现次数,出现位置列表:单词2:出现次数,出现位置列表:…………. “文档2”的ID > 此文档出现的关键词列表. 一般是通过key,去找value.  当用户在主页上搜索关键词“华为手机”时,假设只存在正向索引(forward index),那么就需要扫描索引库中的所有文档,找出所有包含关键词“华为手机”的文档,再根据打分模型进行打分,排出名次后呈现给用户.因为互联网上收录在搜索引擎中的文档的数目是个天文数字,这样的索引结构根本无法满足实时…
前言 创建索引的时候,我们通过Mapping 映射定义好索引的基本结构信息,接下来我们肯定需要往 ES 里面新增业务文档数据了,例如用户,日志等业务数据.新增的业务数据,我们根据 Mapping 来生成对应的倒排索引信息 . 我们一直说,Elasticsearch是一个基于Apache Lucene 的开源搜索引擎.Elasticsearch的搜索高效的原因并不是像Redis那样重依赖内存的,而是通过建立特殊的索引数据结构--倒排索引实现的.由于它的使用场景:处理PB级结构化或非结构化数据,数据…
ES是一个基于RESTful web接口并且构建在Apache Lucene之上的开源分布式搜索引擎. 同时ES还是一个分布式文档数据库,其中每个字段均可被索引,而且每个字段的数据均可被搜索,能够横向扩展至数以百计的服务器存储以及处理PB级的数据. 可以在极短的时间内存储.搜索和分析大量的数据.通常作为具有复杂搜索场景情况下的核心发动机. ES就是为高可用和可扩展而生的.一方面可以通过升级硬件来完成系统扩展,称为垂直或向上扩展(Vertical Scale/Scaling Up). 另一方面,增…