`
qindongliang1922
  • 浏览: 2147701 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
7265517b-f87e-3137-b62c-5c6e30e26109
证道Lucene4
浏览量:116338
097be4a0-491e-39c0-89ff-3456fadf8262
证道Hadoop
浏览量:124597
41c37529-f6d8-32e4-8563-3b42b2712a50
证道shell编程
浏览量:58465
43832365-bc15-3f5d-b3cd-c9161722a70c
ELK修真
浏览量:70357
社区版块
存档分类
最新评论
文章列表
许多情况下,在一个程序中使用多线程是有益处的,可以大大提高程序的效率,多线程主要有以下3个优点1,资源利用率更好2,程序设计在某些情况下更简单3,程序响应更快。当然凡事有利就有弊,多线程也会使程序的开发,维护及调试更加复杂,当然如果我们能够扬长避短,在正确的场合下使用多线程,那么它将成为我们程序中开发的利器。 Java一直以来,对多线程的开发支持比较良好,特别在JDK5,6后引入的java.util.concurrent包,使用多线程的开发变的更加容易,这个包里面大部分的API都是更进一步的封装,作为开发者,我们只需熟悉它怎么使用,就能够很轻松的上手,当然如果你想完全搞懂它,那么就需要读读那 ...
在看代码之前,笔者先说几句题外话,生产者-消费者模式,一直是多线程编程中的经典设计模式,不仅仅提现在Java中,各个类C语言,以及其他的一些高级语言中都有实现,在Java 5之前,还没有出现阻塞队列的容器时,实现一个生产者消费者模式,相对来说比较复杂,代码量也比较大,最重要的是设计同步存取时更需要小心谨慎,一不小心就会带来莫名其妙的问题。 Java 5之前实现同步存取时,可以使用普通的一个集合,然后在使用线程的协作和线程同步可以实现生产者,消费者模式,主要的技术就是用好,wait ,notify,notifyAll,sychronized这些关键字。而在java 5之后,可以使用组阻塞队列来 ...
前面,笔者已经介绍过solr里面另外2种中文分词的配置,今天就来就简述一下mmseg4j在solr4.3里面的配置,mmseg4j也是一款很优秀的中文分词器,是用Chih-Hao Tsai 的 MMSeg 算法(http://technology.chtsai.org/mmseg/ )实现的中文分词器,并实现 lucene 的 analyzer 和 solr 的TokenizerFactory 以方便在Lucene和Solr中使用。 其实,配置分词很简单,只要有分词jar包,然后在solr的schemal.xml里面配置一个分词器,就可以了,如果还想在专业一点,可以自定义词典库,禁用词库,相 ...
上篇文章,比较详细的介绍了拼写检查的功能,本篇笔者就来说一下检索建议的功能,可能好多才学的solr的人,都容易把二者搞混,误以为他们是同一个东西,其实不然,他们的侧重点,还是不同的,拼写检查就是用来检查用户输入的检索内容是否存在,如果不存在则,给它提示出相近,或相似的内容,而检索建议则是用户输入某个检索条件后,会立刻友好的给出一系列提示内容,并推荐首个出现的相似的词,作为推荐词。如果这个条件想关的东西一个都没有,则不会提示,所以某种意义上来说,可以在用户输入检索条件时使用suggest,而在点击完搜索时,使用拼写检查,二者结合给可以用户带来比较好的用户体验! 检索建议(suggest)是依附 ...
Cygwin是一款优秀的软件,因其能在windows上模拟Linux环境,从而给我们测试某些开发程序带来极大的方便,省去了安装虚拟机的琐碎事情,也大大的节约了计算机内存和CPU的开销,所以,我们有必要了解一下它,如果是用Linux开发 ...
漫步在城市的小道上,望着远方,思绪万千,当一切都烟消云散时,注定有起有落。 健身房,终于开起来了,抱着激动的心情,前去锻炼了,因为开始的第一周,游泳池还没弄好,其他的健身方式过于高级,所以还是选择了跑步,等以后游泳池好了,计划就是跑步加游泳,会比较好,第一周每天晚上,我都会去跑步1个小时,健身房里面的人挺多的,看起来也挺热闹的,这几天坚持每天晚上下班,都去跑步,一个小时跑下来,大概能跑10千米左右,每次,汗流的都把上衣给弄湿了,不过跑完之后,在洗个澡感觉还蛮爽的。 我这个人,平时上班没事的时候,总喜欢看一些程序员写的人生感悟,有些写的很好,不仅仅是编程方面的,还有人生方面,如何打拼,如何创 ...
拼写检查功能,能在搜索时,提供一个较好用户体验,所以,主流的搜索引擎都有这个功能。在这之前,笔者先简单的说一下什么是拼写检查,其实很好理解,就是你输入的搜索词,可能是你输错了,也有可能在它的检索库里面 ...
Java数据库连接接口(JDBC)是Java里定义的一套用于数据库连接和操作的API的集合。有不同的数据库厂商提供这套接口的实现类,对于Java程序员来说,程序员不需要关心数据库的底层的实现,统一的调用JDBC里面的抽象出来的API来完成数据库的访问功能,在Data access的功能和接口定义中,Java是在别的语言对数据库的URL的描述,其他的一切也就是通过统一的调用来实现了,本文章手机了主要的数据库厂商提供的Driver和URL,以便大家方便的对各种数据库进行连接的操作。 统一使用的方法 Class.for(jdbcDriverName); ...
关于XML的解析,是编程中不可或缺的一部分,也是很重要的一部分,那么目前对XML的解析工具类,也有很多,现在广泛使用主要有4中解析方式,DOM,SAX,JDom,Dom4j, 首先,从本质上说一下,其实只有2中解析方式 ,就是DOM和SAX解析 ...
Oracle的数据库里对于大字段存储,通常有3种类型,一种就是所谓的Blob类型,另一种就是Clob类型,第三种是NClob类型,关于这三者者的使用范围,应该说没有严格意义上的要求,但大部分场景下我用经常使用Blob存储二进制数据类 ...
首页,笔者先把两种最常用的Oracle分页方式sql语句贴出来,另外说明下笔者要查询的表有2000多万数据 第一种: select * from (select rownum a, ARTICLEW.XMLDOC from ARTICLEW ) t where t.a between 1 and 200 ; 第二种: select * from (select rownum, t.* from (select xmldoc from articlew) t where t.rownum<=200) where rownum > ...
笔者近期开发需要临时安装Oracle数据库进行远程连接,因为以前大部分都是用My SQL的数据库,没办法了,只能直接安装个Oracle数据库了,关于Oracle数据的下载与安装不是本文重点,所以想安装的读者可以到此链接进行下载,下载需要注册一个oracle账户,http://www.oracle.com/technetwork/indexes/downloads/index.html,下载完后完成之后即可安装,安装其实很简单,基本上下一步下一步就没问题了。 下面开始本文的重点,在这之前笔者先讨论下Oracle自带的开发工具SQL PLUS和SQL Developer,首先笔者觉得SQL PL ...
上一篇讲了使用solr4.3自带的smartcn进行中文分词,这一篇说一下,怎么使用IK进行分词, 在这之前先对中文分词的种类介绍一下,目前的中文分词主要有两种 1,基于中科院ICTCLAS的隐式马尔科夫hhmm算法的中文分词器,例如smartcn等。(不支持自定义扩展词库) 2,基于正向迭代最细粒度切分算法(正向最大匹配并且最细分词)例如IK,庖丁等(支持自定义扩展词库) 安装分词前,可以去http://code.google.com/p/ik-analyzer/downloads/list下载IK的分词包 ikanalyzer-4.3.1-SNAPSHOT.jar 下载完毕后,将此包放 ...
solr4.3默认的分词器是一元分词器,这个本来就是对英文进行分词的,英文大部分就是典型的根据空格进行分词,而中文如果按照这个规则,那么显然是要有很多的冗余词被分出来,一些没有用的虚词,数词,都会被分出来,影响效率不说,关键是分词效果不好,所以可以利用solr的同步发行包smartcn进行中文切词,smartcn的分词准确率不错,但就是不能自己定义新的词库,不过smartcn是跟solr同步的,所以不需要额外的下载,只需在solr的例子中拷贝进去即可,下面给出路径图和安装solr4.3的smartcn分词过程 无论安装那种分词器,大部分都有2个步骤,第一步是拷贝jar包到solr的lib中 ...
lucene在4.x之前,没有实现分组的功能,如果业务中有需要分组的功能,那么必须的借助第三方的提供的插件,来实现分组,例如Bobo-browse,或者,自己用lucene写分组功能,笔者个人觉得用第三方的分组插件,虽说功能强大,但是比较繁琐,自己写的话,可以实现,但是效率方面却不是很好,在4.x之后,lucene已经自己实现分组功能提供了分组jar包 lucene-grouping-4.2.0.jar,利用此类可以效率很高完成分组去重功能。下面不在啰嗦,直接贴出代码,如有问题,欢迎指正! public static List<HashMap<String, S ...
Global site tag (gtag.js) - Google Analytics