自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

刘本龙的专栏

个人邮箱:3089008201@qq.com. 技术交流群:684457529

转载 lucene学习笔记(八)lucene实时搜索

在项目中需要使用lucene构建时时搜索。 在网上找了一篇论文,然后根据该文章自己实现了时时搜索功能。原文链接:有关Lucene的问题(8):用Lucene构建实时索引的文档更新问题在有关Lucene的问题(7),讨论了使用Lucene内存索引和硬盘索引构建实时索引的问题。然而有的读者提到,如果...

2017-01-25 14:21:35 1379 0

原创 lucene学习笔记(七)lucene近实时搜索

近实时搜索Lucene3.5起提供了NRTManager管理近实时搜索。原理:将搜索存放到内存中,每个一定时间提交到硬盘中。NRTManager和SearchManager是线程安全的使用NRTManager获取SearchManager。并且使用NRTManager进行修改操作。其修改操作只是保...

2017-01-25 14:15:09 1557 0

原创 solr4.8.1学习笔记

solr4.8.1全文搜索服务器 下载solr–>Lucene3.5.0(solr3.5.0) SolrJsolr wiki1、Solr4.8.1整合到Tomcat中并添加MMSeg4j中文分词器下载最新的lucene和solr。注意solr和lucene版本要一致;并且4.8版本必须使...

2017-01-25 14:11:03 1769 0

原创 lucene学习笔记(六)lucene扩展:高亮显示,luke,tika

lukeluke是一个查询索引的工具,使用时必须注意:版本要与lucene的版本完全一致,否则可能打不开索引信息 java -jar luke-xx-xx.jar可以打开索引 选择索引说存储的目录,就可以使用luke查询和操作相应的索引信息,并且可以在search中根据QueryParser来...

2017-01-25 14:04:34 1297 0

原创 lucene学习笔记(五)lucene高级搜索

1、搜索排序2、搜索过滤3、自定义评分3.1、创建一个类继承于CustomScoreQuery3.2、覆盖getCustomScoreProvider方法3.3、创建CustomScoreProvider类3.4、覆盖customScore方法3.5、根据field进行评分 4、自定义Query...

2017-01-25 13:39:30 1174 0

原创 lucene学习笔记(四)lucene分词详解

分词器的核心类Analyzer SimpleAnalyzer StopAnalyzer WhitespaceAnalyzer StandardAnalyzer TokenStream分词器做好处理之后得到的一个流,这个流中存储了分词的各种信息,可以通过TokenStream有效的获取到分词单元信息...

2017-01-25 13:31:30 3603 2

原创 lucene学习笔记(三)lucene搜索查询

1、搜索的简单实现(TermQuery)1.1、创建IndexReader1.2、创建IndexSearcher1.3、创建Term和TermQuery1.4、根据TermQuery获取TopDocs tds.totalHits是总记录数,和传入的num没有任何关系 1.5、根据TopDocs获取...

2017-01-25 13:23:35 1137 0

原创 lucene学习笔记(二)lucene建立索引

1. 基本概念Field.Store.YES或者NO(存储域选项) 设置为YES表示或把这个域中的内容完全存储到文件中,方便进行文本的还原 设置为NO表示把这个域的内容不存储到文件中,但是可以被索引,此时内容无法完全还原(doc.get) Field.Index(索引选项) Index.ANALY...

2017-01-25 13:22:03 1022 0

原创 lucene学习笔记(一)简介

这是3年前的学习笔记,使用的lucene3.6.1,现在将其搬到CSDN博客上来。虽然版本比较老了,但是其内部实现机制变动并不是特别大。 本系列教程分为一下内容:在全文索引工具中,都是由这样的三部分组成 1. 索引部分(I am a boy) 2. 分词部分 3. 搜索部分系统架...

2017-01-25 12:21:15 981 0

原创 Elasticsearch学习笔记(七)Elasticsearch分布式集群工作原理简介

路由我们前面知道,ES集群每一个节点都可以接受命令,但是数据是分片存储的,那ES集群怎么知道应该去哪个节点上修改哪个分片的数据呢? 与redis等其他分布式一样,当一个请求到来时,首先会根据ID进行取余来将请求分配到对应的节点上。 路由算法shard = hash(routing) % num...

2017-01-25 12:19:12 4453 0

原创 Elasticsearch学习笔记(六)Elasticsearch分布式集群值helloWord

集群信息查看查看集群健康值我们在前面的文章中介绍了简历一个ES集群,现在就是用这个集群进行说明。通过head插件看进入head插件

2017-01-25 12:14:45 3060 0

原创 Elasticsearch学习笔记(五)批量操作

一次性检索多个文档【多个查询条件】mget 结果中可以看到:第二个文档不存在,但是mget请求返回码是200,即使一个都不存在也是返回200,所以要判断found是否为TRUE来判断是否真正查询出数据。.上面的_index,_type都是同一个,可以将查询简写为:

2017-01-25 12:10:56 3272 0

原创 Elasticsearch学习笔记(四)版本控制[并发安全]

乐观锁我们知道锁有悲观锁和乐观锁之分,数据库中的事务就是悲观锁,CAS就是属于乐观锁,关于CAS乐观锁的概念请参考本人另一篇文章: java高并发:CAS无锁原理及广泛应用一个CAS方法包含三个参数CAS(V,E,N)。V表示要更新的变量,E表示预期的值,N表示新值。只有当V的值等于E时,才会将V...

2017-01-25 12:08:45 3712 0

原创 Elasticsearch学习笔记(三)Elasticsearch5.1.2安装

下载首先到官网下载最新的5.1.2的安装包,下载地址:https://www.elastic.co/products/elasticsearch解压tar -zxvf elasticsearch-5.1.2.tar.gz修改jdk版本注意,elasticsearch需要使用jdk8,但是由于我对L...

2017-01-24 15:19:55 10685 0

原创 Elasticsearch学习笔记(一)Elasticsearch2.4.2安装

简述  14年我接触lucene ,并自学将其应用到项目中,当时是直接使用lucene的API,确实复杂一些,不过在学习lucene的过程中对搜索引擎有了一个全面的认识。Elasticsearch和solr是基于lucene的开源搜索引擎,它对lucene进行了封装,对开发者来说使用更加简单,...

2017-01-23 18:14:01 3436 0

原创 Elasticsearch学习笔记(二)Elasticsearch入门

elasticsearch术语简介Elasticsearch是一个分布式的文档(document)存储引擎。它可以实时存储并检索复杂数据结构——序列化的JSON文档 当然,我们不仅需要存储数据,还要快速的批量查询。虽然已经有很多NoSQL的解决方案允许我们以文档的形式存储对象,但它们依旧需要考虑...

2017-01-23 18:13:22 3488 0

原创 thrift学习笔记(一) thrift简介及第一个helloword程序

简介facebook开源的RPC框架,秉承了Facebook一贯的只管拉屎不管擦屁股的作风. Thrift是一个软件框架,用来进行可扩展且跨语言的服务的开发。它结合了功能强大的软件堆栈和代码生成引擎,以构建在 C++, Java, Python, PHP, Ruby, Erlang, Perl,...

2017-01-23 11:29:38 9910 0

原创 服务化实战之 dubbo、dubbox、motan、thrift、grpc等RPC框架比较及选型

概述前段时间项目要做服务化,所以我比较了现在流行的几大RPC框架的优缺点以及使用场景,最终结合本身项目的实际情况选择了使用dubbox作为rpc基础服务框架。下面就简单介绍一下RPC框架技术选型的过程。

2017-01-23 11:08:30 62633 6

转载 升级jdk8后系统报错解决:java.lang.RuntimeException: java.io.IOException: invalid constant type: 18

今天项目从jdk7升级到jdk8,Tomcat启动竟然报出这个运行时错误。 错误信息:java.io.IOException: invalid constant type: 18

2017-01-19 15:43:05 9582 0

原创 关于Integer数值比较的问题以及不可变对象

前言写这篇文章是因为在之前的项目中通过findbugs进行代码优化,爆出的问题。其实我们的代码中暗藏危机,只是没有暴露出来而已 我这里使用jdk7 测试public static void main(String[] args) { Integer a = 10; ...

2017-01-19 11:01:05 2314 0

原创 akka学习教程(十四) akka分布式实战

上一篇文章介绍了akka集群的搭建,现在假如服务的生产者与消费者两个角色,模拟真实的服务调用。 本篇文章主要参考 使用Akka构建集群(二) 整体架构服务端三个服务,端口为2552,2553,2551;客户端有两个:2554,2555 服务端角色为[server];客户端角色为[clien...

2017-01-18 17:48:04 21680 7

原创 akka学习教程(十三) akka分布式

akka集群概述Akka群集提供容错分散的对等群集成员服务,没有单点故障或单点瓶颈。 它使用gossip协议和自动故障检测器。

2017-01-18 15:55:27 11996 2

转载 akka学习教程(十二) Spring与Akka的集成

概述 近年来随着Spark的火热,Spark本身使用的开发语言Scala、用到的分布式内存文件系统Tachyon(现已更名为Alluxio)以及基于Actor并发编程模型的Akka都引起了大家的注意。了解过Akka或者Actor的人应该知道,这的确是一个很不错的框架,按照Akka官网的描述——...

2017-01-18 15:13:19 8910 0

原创 akka学习教程(十一) akka持久化

akka系列文章目录 akka学习教程(十四) akka分布式实战 akka学习教程(十三) akka分布式 akka学习教程(十二) Spring与Akka的集成 akka学习教程(十一) akka持久化 akka学习教程(十) agent akka学习教程(九) STM软件事务内存 akka学...

2017-01-17 16:26:47 6274 0

原创 akka学习教程(十) agent

我们知道在JDK中,编写多线程代码时要谨慎处理临界区的数据,可以加锁或者使用JDK自带的CAS库:atomic相关包。那么在akka中怎么处理呢?akka给我们提供了一个agent。可以使用agent来实现共享变量的安全处理。下面示例为10个actor并发累加countAgent变量。每个累加10...

2017-01-16 18:56:42 5436 1

原创 akka学习教程(九) STM软件事务内存

软件事务内存(STM):顾名思义,这是事务。与关系型数据库中的事务类似,具有ACID属性。 在分布式任务中,有可能会有和事务相关的处理,这里将举例说明AKKA中STM的用法。假设公司给员工发工资业务,CompanyActor是公司actor, EmployeeActor是员工actor,公司账户...

2017-01-16 18:22:44 5932 0

原创 akka学习教程(八) Actor中的Future-询问模式

和java线程中的future挺像的,可以将一个actor的返回结果重定向到另一个actor中进行处理,主actor或者进程无需等待actor的返回结果。

2017-01-16 16:32:23 7451 2

原创 akka学习教程(七) 内置状态转换Procedure

在actor运行过程中,可能会有多种状态,各个状态间可能会存在切换的情况,akka已经帮我们考虑到这种情况情况的处理:Procedure. 下面模拟一个婴儿。婴儿有两种不同的状态,开心和生气,婴儿有个特点就是好玩,永远不会累,所以让其睡觉婴儿就会生气,让他继续玩就会很高兴。 简单代码如下:pa...

2017-01-16 15:58:20 4912 4

原创 akka学习教程(六) 路由器Router

通常在分布式任务调度系统中会有这样的需求:一组actor提供相同的服务,我们在调用任务的时候只需要选择其中一个actor进行处理即可。 其实这就是一个负载均衡或者说路由策略,akka作为一个高性能支持并发的actor模型,可以用来作为任务调度集群使用,当然负载均衡就是其本职工作了,akka提供了...

2017-01-16 14:48:20 10374 5

原创 akka学习教程(五) inbox消息收件箱

我们知道,整个akka的actor系统是通过消息进行传递的,之前的几个教程都是通过一个actor来给另一个actor发消息。其实还可以使用inbox消息收件箱来给某个actor发消息,并且可以进行交互。package akka;import akka.actor.*; import akka.ev...

2017-01-12 14:40:53 8303 0

原创 akka学习教程(四) actor生命周期

akka值actor生命周期

2017-01-05 15:48:25 12604 0

原创 akka学习教程(三) 不可变对象

我们都知道在编写java线程的时候,要传递不可变对象,这里akka也是如此 下面这个例子就是传递不可变对象:package akka.unmodifiable;import java.util.Collections; import java.util.List;/** * Created b...

2017-01-05 15:41:23 11355 0

提示
确定要删除当前文章?
取消 删除