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

分布式搜索elasticsearch高级配置之(一)------分片分布规则设置

分片分布是把索引分片分布到节点的过程。这个操作会在初次启动集群,副本分配,负载均衡,或增加删除节点时进行。

下面是一些与分片分布相关的设置:
cluster.routing.allocation.allow_rebalance

分布式搜索elasticsearch中文分词集成

elasticsearch官方只提供smartcn这个中文分词插件,效果不是很好,好在国内有medcl大神(国内最早研究es的人之一)写的两个中文分词插件,一个是ik的,一个是mmseg的,下面分别介绍下两者的用法,其实都差不多的,先安装插件,命令行:

nutch2.0+cassandra中文网页乱码问题

用nutch2.0+cassandra1.0爬取和存储网页时发现gbk编码的网页解析提取文本时中文全都变成乱码,非常奇怪,之前nutch1.x从来就不会出现中文乱码的问题的,因为nutch1.x和nutch2.x用的爬虫代码差不多是一样的,所以我猜可能是保存到cassandra时有问题。

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

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

eclipse中调试nutch2.0+cassandra

 很早官方就开始了nutch2.0的研发,而一直都是两线同时研发的,一个是普通版,一个是gora版本,也就是nutch2.0。下面介绍下怎样把项目导进eclipse中,这里我们的存储层使用nosql cassandra,本来想先使用mysql试试,发现启动不了爬虫,调试下发现原来还没有完全实现gora的sql数据库的存储功能,所以选择易用的cassandra作为测试。

分布式爬虫nutch2.0初体验------三大亮点

 实在是等不及了,下了开发版的nutch2.0来玩玩,nutch2.0有什么不同呢?从官网wiki(见参考资料)可看到,主要是以下几个方面:

1.抽象存储层

 把存储层抽象出来,不仅像之前那样可以存放在hdfs上,也可以存在其它nosql中,如:hbase,cassandra,或关系数据库。

分布式搜索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的例子:

mongodb保存java对象的三种方法

mongodb有三种方法来保存java对象,一种是通过类实现DBObject接口,一种是利用spring-mongodb工具的对象映射功能,把java对象转换成mongodb的BSON文档,一种是通过序列化类实例,转成二进制存储,mongodb是支持二进制的数据格式的。下面分别介绍三种方法:

分布式搜索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的文件夹,把插件放到这个文件夹中。

Mongodb与spring集成(4)------读写mongo GridFs中的文件

mongodb里面自带有一个分布式文件系统gridFs,它是以块的方式来存储文件的,一般的存储都够用了,国内一个使用例子是视觉中国使用它来进行上亿数据级的图片存储,可以看出这套文件系统还是挺强大的。下面介绍下如何用spring-data-mongodb来对其进行操作

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

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

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

分布式搜索方案选型之五(终篇):Elasticsearch

最后发现了elasticsearch这个分布式搜索框架,我一看它的介绍就觉得,就是它了。它基本上所有我想要的特性都包含了,分布式搜索,分布式索引,零配置,自动分片,索引自动负载,自动发现,restful风格接口。

分布式搜索方案选型之四:Solr+Katta

一个叫katta的开源项目进入我的视线,它是一个分布式索引建立和管理工具,底层是hadoop的hdfs分布式文件系统,hadoop是当今云计算的热门使用项目,由apatch开源是一个海量数据的处理和存储方案

分布式搜索方案选型之三:SolrCloud

 逛solr官网时无意发现了solrCloud这个开源项目,即solr云或叫分布式solr。它是基于solr的,使用zookeeper作为节点之间通信管理,它具有solr的所有特征,并提供索引分片的功能