当前在线人数:1 登录
云端分布式搜索技术 关注云端搜索技术:elasticsearch,nutch,hadoop,nosql,mongodb,hbase,cassandra

标签: elasticsearch (29)

elasticsearch1.7.3升级到2.1.1记录

升级手册直接参考官方文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/restart-upgrade.html

升级前可以看下有啥改动:https://www.elastic.co/guide/en/elasticsearch/reference/master/breaking-changes-2.0.html
 

elasticsearch更改node id生成方法

集群中节点的id是由discovery定义的,默认es有两种实现方式,一种是
org.elasticsearch.discovery.local.LocalDiscovery
表示把es的节点启动在同一个jvm的环境下,这样就可以通过AtomicLong来进行数字递增的id生成。

elasticsearch手动控制分片分布

elasticsearch可以通过reroute api来手动进行索引分片的分配。

不过要想完全手动,必须先把cluster.routing.allocation.disable_allocation参数设置为true,禁止es进行自动索引分片分配,否则你从一节点把分片移到另外一个节点,那么另外一个节点的一个分片又会移到那个节点。

elasticsearch使用jetty进行简单的权限控制

默认elasticsearch是使用netty作为http的容器,由于netty并没有权限模块,所以默认es没有任何的权限控制,直接通过http就可以进行任何操作,除非把http禁用。但如果你使用elasticsearch-jetty插件,就可以使用jetty自带的权限管理进行一些权限的控制,同时也可以支持通过https协议来访问es,还有就是支持gzip压缩响应信息。

elasticsearch插件大全(不断更新)

Elasticsearch扩展性非常好,有很多官方和第三方开发的插件,下面以分词、同步、数据传输、脚本支持、站点、其它这几个类别进行划分。

elasticsearch客户端大全(不断更新)

Elasticsearch有各种语言的客户端,下面一一列出来

nutch2.1+mysql+elasticsearch整合linux单机部署

这次主要介绍下nutch2.1和mysql和elasticsearch的整合,是在单机上运行,并不是分布式部署。
1、下载nutch2.1 2、配置nutch使用mysql作为数据存储  3、修改conf的nutch-site.xml 
4、使用ant编译源码。 5、设置待抓取的网站 6、创建数据库和表 7、执行爬行操作
8、执行索引操作

GitHub使用elasticsearch遇到的一些问题及解决方法

GitHub 此前的搜索使用Solr实现,新上线的搜索基于elasticsearch,运行在多个集群上。由于代码搜索索引很大,GitHub专门为其指定了一个集 群。目前该集群包括26个存储节点和8个客户端节点。存储节点负责保存构成搜索索引的数据,而客户端节点负责协调查询活动。每个搜索节点中有2TB的 SSD存储。

一些国外优秀的elasticsearch使用案例

Github
“Github使用Elasticsearch搜索20TB的数据,包括13亿的文件和1300亿行的代码”

 

这个不用介绍了吧,码农们都懂的,Github在2013年1月升级了他们的代码搜索,由solr转为elasticsearch,目前集群规模为26个索引存储节点和8个客户端节点(负责处理搜索请求),详情请看官方博客

分布式搜索elasticsearch的5种分片查询优先级

elasticsearch可以使用preference参数来指定分片查询的优先级,使用时就是在请求url上加上preference参数,如:http://ip:host/index/_search?preference=_primary
java的调用接口翻译为:client.prepareSearch("index").setPreference("_primary")。默认情况下es有5种查询优先级:

分布式搜索elasticsearch java API 之(七)------与MongoDB同步数据

elasticsearch提供river这个模块来读取数据源中的数据到es中,es官方有提供couchDB的同步插件,因为项目用到的是mongodb,所以在找mongodb方面的同步插件,在git上找到了elasticsearch-river-mongodb。

分布式搜索elasticsearch java API 之(六)------批量添加删除索引

elasticsearch支持批量添加或删除索引文档,java api里面就是通过构造BulkRequestBuilder,然后把批量的index/delete请求添加到BulkRequestBuilder里面,执行BulkRequestBuilder。下面是个例子:

分布式搜索elasticsearch java API 之(五)------搜索

elasticsearch的查询是通过执行json格式的查询条件,在java api中就是构造QueryBuilder对象,elasticsearch完全支持queryDSL风格的查询方式,QueryBuilder的构建类是QueryBuilders,filter的构建类是FilterBuilders。下面是构造QueryBuilder的例子:

分布式搜索elasticsearch java API 之(四)------删除索引数据

删除api允许从特定索引通过id删除json文档。有两种方法,一是通过id删除,二是通过一个Query查询条件删除,符合这些条件的数据都会被删除。

分布式搜索elasticsearch java API 之(三)------索引数据

es索引数据非常方便,只需构建个json格式的数据提交到es就行,下面是个java api的例子

分布式搜索elasticsearch java API 之(二)------put Mapping定义索引字段属性

 Mapping,就是对索引库中索引的字段名及其数据类型进行定义,类似于关系数据库中表建立时要定义字段名及其数据类型那样,不过es的mapping比数据库灵活很多,它可以动态添加字段。一般不需要要指定mapping都可以,因为es会自动根据数据格式定义它的类型

分布式搜索elasticsearch配置文件详解

elasticsearch的config文件夹里面有两个配置文件:elasticsearch.yml和logging.yml,第一个是es的基本配置文件,第二个是日志配置文件,es也是使用log4j来记录日志的,所以logging.yml里的设置按普通log4j配置文件来设置就行了。下面主要讲解下elasticsearch.yml这个文件中可配置的东西。

分布式搜索elasticsearch几个概念解析

介绍下es的几个概念:
cluster
     代表一个集群,集群中有多个节点,其中有一个为主节点,这个主节点是可以通过选举产生的,主从节点是对于集群内部来说的。es的一个概念就是去中心化,字面上理解就是无中心节点

分布式搜索elasticsearch单机与服务器环境搭建

先到http://www.elasticsearch.org/download/下载最新版的elasticsearch运行包,本文写时最新的是0.19.1,作者是个很勤快的人,es的更新很频繁,bug修复得很快。下载完解开有三个包:bin是运行的脚本,config是设置文件,lib是放依赖的包。如果你要装插件的话就要多新建一个plugins的文件夹,把插件放到这个文件夹中。

分布式搜索elasticsearch java API 之(一)------与集群交互

这是关于elasticsearch java api的第一篇教程,陆续会把es的一些心得写出来。

可以通过两种方式来连接到elasticsearch(简称es)集群,第一种是通过在你的程序中创建一个嵌入es节点(Node),使之成为es集群的一部分,然后通过这个节点来与es集群通信。