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

分布式搜索方案选型之二:Solandra

我在学校项目实践时使用过solandra,它是一个基于solr和nosql数据库cassandra的分布式搜索引擎。cassandra是由facebook开源的nosql数据库,facebook的信箱搜索就是基于它实现的,它是基于列结构的,不同与关系数据库。

分布式搜索方案选型之一:Solr

我第一个了解到的分布式搜索框架是solr,它是由java开发的,基于lucene的分布式搜索引擎,提供了类似于webserver的编程接口,是一个比较成熟的搜索引擎,目前很多公司都在使用。

spring缓存集成memcache

spring3.1.0开始支持注解方式的缓存实现,非常方便,不过它目前只支持java内置的ConcurrentMap和ehcache这两种缓存方式,因为项目用到memcache,就想把memcache集成到spring内置的缓存中,使memcache也能用注解方式来调用。

Mongodb与spring集成(3)------MongoRepository实现增删改查和复杂查询

与HibernateRepository类似,通过继承MongoRepository接口,我们可以非常方便地实现对一个对象的增删改查,要使用Repository的功能,先继承MongoRepository<T, TD>接口,其中T为仓库保存的bean类

Mongodb与spring集成(2)------实体映射

spring-data-mongodb中的实体映射是通过MongoMappingConverter这个类实现的。它可以通过注释把java类转换为mongodb的文档。

Mongodb与spring集成(1)------配置

这里我们用到的是spring-data中一个集成mongodb的项目,首先在maven中添加对它的依赖,这里我用的是1.0.0.M5版本

Hadoop0.20.2+Hbase0.90.4+Zookeeper3.3.3集成以及遇到的问题

实验环境: vware 7.1 centos5.5 jdk1.6 假设你已经有可运行的hadoop,hadoop的配置参考如下(具体hadoop配置运行的教程可以网上找)

nutch1.3和solr3.x集成时出现Invalid UTF-8 character问题

今天更新了下nutch,发现已经出了1.3版,下载时就发现只有70多M,之前的可是100多M的,肯定是什么东西删了,下载完后发现原来nutch自带的搜索功能都被删了,现在只能用solr作为索引和搜索来使用。

使用lingpipe自然语言处理包进行文本分类

TrainTClassifier,基于TF/IDF算法的分类器,必须先把要语料库放到各自所属的分类文件夹中,比如:与金融相关的文章就放到金融这个文件夹中,我这的根目录是f:/data/category,训练完后会生成一个分类器模型tclassifier,之后其它文本的分类的确定就是通过它。

Data-Intensive Text Processing with MapReduce第三章(7)-3.6总结

这章提供一个设计MapReduce算法的指导。特别地,对于常见问题我们展示了很多设计模式来解决。总的来说,它们是:

“In-mapper combining”(map内合并),combiner函数被移到了mapper里面,mapper通过多个输入记录聚集部分结果

Data-Intensive Text Processing with MapReduce第三章(6)-MapReduce算法设计-3.5相关连接(RELATIONAL JOINS)

3.5相关连接(RELATIONAL JOINS) Hadoop的一个流行应用领域是数据仓库。在一个企业级的环境中,一个数据仓库作为大量数据的存储地点,存储着从销售交易到商品清单几乎所有的信息。一般来说这些数据都是相关的,但是随着数据的日益增长,数据仓库被用来像存储无结构数据那样存储半结构化的数据(例如,查询日志)。数据仓库组成了提供决策支持的商业智能应用程序的基础。普遍认为知识是通过对历史、现在

Data-Intensive Text Processing with MapReduce第三章(5)-MapReduce算法设计-3.4 二次排序

3.4 二次排序 MapReduce在清洗(shuffle)和排序(sort)阶段用键来为中间键值对排序,如果reducer中的计算依赖于排序顺序的话就非常简单(即之前章节说到的顺序反转模式)。然而,如果除了用键排序之外,我们也需要用值来排序呢?Google的MapReduce实现提供了内置的二次排序的机制,它可以保证值是以排序顺序到达的。Hadoop,不幸的是没有内置这种机制。 (t1,m1,

Data-Intensive Text Processing with MapReduce第三章(4)-MapReduce算法设计-3.3计算相对频率

3.3计算相对频率 让我们在之前讲到的pairs和stripes算法的基础上继续在大型数据集上构建重现矩阵M。回忆在这个大的n×n矩阵中华,当n=|V|(词典大小),元素mij包含单词wi与wj在具体语境下共同出现的次数。无约束的计数的缺点是它没有考虑到实际上有些词会比其它词更加频繁地出现。单词wi可能比wj出现的次数多因为其中一个可能是常用词。一个简单的解决方法是把无约束的计数转变为相对频率,f

Data-Intensive Text Processing with MapReduce第三章(3)-MapReduce算法设计-3.2 PAIRS(对)和STRIPES(条纹)

3.2 PAIRS(对)和STRIPES(条纹) 在MapReduce程序中同步的一个普遍做法是通过构建复杂的键和值这样一个途径来使数据自然地适应执行框架。我们在之前的章节中涉及到这个技术,即把部分总数和计数“打包”成一个复合值(例如pair),依次从mapper传到combiner再传到reducer。以之前的出版物为基础【54,94】,这节介绍两个常见的设计模式,我们称为pairs(对)和st

Data-Intensive Text Processing with MapReduce第三章(2)-MapReduce算法设计-3.1局部聚集

3.1局部聚集(local aggregation) 在数据密集的分布式处理环境中,从产生它们的进程到最后消费它们的进程,中间结果的交互是同步中重要的一个方面。在一个集群环境中,除了令人尴尬的并行问题,其它都必须通过网络传输数据。此外,在Hadoop,中间结果是先写到本地磁盘然后再用网络发送出去。因为网络和磁盘因素相对其它因素更加容易成为评价,所以减少中间数据的传输即提高了算法的效率。在MapRe

Data-Intensive Text Processing with MapReduce第三章(1)-MapReduce算法设计-简介

大量高效的MapReduce程序因为它简单的编写方法而产生:除了准备输入数据之外,程序员只需要实现mapper和ruducer接口,或加上合并器(combiner)和分配器(partitioner)。所有其他方面的执行都透明地控制在由一个节点到上千个节点组成的,数据级别达到GB到PB级别的集群的执行框架中。然而,这就意味着程序员想在上面实现的算法必须表现为一些严格定义的组件,必须用特殊的方法把它们

运行Cassandra8.0服务

1.安装配置JDK,自己找教程 2.修改cassandra目录下的conf/log4j-server.properties 修改系统日志文件的存放位置,例: linux下 log4j.appender.R.File=/var/cassandra/log/system.log windows下 log

nutch1.2运行时可能发生的错误以及解决办法

错误1.由linux下允许打开的最大文件数量引起 错误消息: java.io.IOException: background merge hit exception: _0:C500->_0 _1:C500->_0 _2:C500->_..... [optimize] at org.apache.l

提高nutch爬取效率

Here are the things that could potentially slow down fetching 下面这些是潜在的影响爬取效率的内容: 1) DNS setup 2) The number of crawlers you have, too many, too few. 3

Nutch1.2插件实现or查询

Nutch的搜索前台的默认搜索方式是and,也就是所有关键词都必须出现。现在想实现or查询发现nutch本身并不支持,在去官方论坛搜索无果,改源代码无果的情况下想到用插件实现or查询,于是参照query-base插件改写了个query-or插件,源码如下: publicclass OrQueryFi