自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

随-记的专栏

初来乍到

  • 博客(201)
  • 资源 (11)
  • 收藏
  • 关注

原创 MySQL数据库常见操作指令

预装 mysqld --install mysql 启动 net start mysql 进入 mysql -u root -p 创建数据库 create database 数据库名 character set utf8; 删除数据库 drop database 数据库名; 查看数据库 show databases; 查看数据库 show ...

2018-02-23 21:38:11 621

原创 Lucene深入学习(13)Lucene的索引近实时复制

Lucene 6.0 引入了一个NRT segment replication,使得复制索引数据到另一台服务器更可靠,它利用的是更快速更便宜的本地网络技术。与目前流行的解决方案Elasticsearch/Solr等不同,它的索引性能有巨大进步。Lucene有一个独特的write-once(一次性写入) segment结构:最近索引的文档被写入一个新的segment,一旦写入,这些segment文件将

2018-01-31 21:57:33 693

原创 Lucene深入学习(11)Lucene的索引分布式构想

直接使用Lucene作分布式很难实现,官方不支持这种设计,好像也没打算支持。因为大多数情况下,使用基于Lucene的Solr或者Elasticsearch很容易地实现分布式需求。索引限制因为机器环境各部相同,一般来说,Lucene可以处理500-8000万规模的索引数据。利用分布式技术,可以让Lucene达到数十亿文档的处理规模。Lucene与hadoopLucene的Directory是一个接口,

2018-01-30 22:20:27 1139

原创 Lucene深入学习(11)Lucene的索引删除

摘要: 之前的章节中已经说明了索引的添加,本节将介绍如何将特定的一个或多个文档从索引中删除。索引读取IndexReader是维护索引重要的工具类,它是一个抽象类,但是却提供了一个静态方法来获取其子类的实例。IndexReader reader = IndexReader.open(index_path)索引删除在建立索引的过程中,Lucene会为每个加入索引的Docu

2018-01-29 22:19:34 1356

原创 CSDN博客关联码云,点亮码云的G图标

因为一个偶然的机会注册了码云,发现CSDN可以和码云绑定。苦于一直没有设置的入口,也没有找到官方的说明,遂探索一遭。 由于是摸索出来的,用了很多办法,不是很确定这些办法知否有用,如果有人知道更简单、更准确的办法,欢迎分享出来。点亮G图标在博主的详情页面,可以看到这个G图标,不过刚开始是 灰色 的。出现这个问题,可能是CSND注册邮箱和码云注册邮箱不一致。 详情页类似这种连接 http://m

2018-01-01 20:11:56 963 1

原创 2017 我的CSDN博客成长历程

2017年最后一篇博客,记录我这一年在CSDN博客的成长历程。年初的时候,从我加入CSDN以后写的第一篇的博客算起,我前两年写的博客大约是50篇。 2016年12月低的博客数据: 今年更新的博客确实多了不少,仅仅1月份,就有十多篇。 2017年1月低的博客数据: 不过这个良好的开端并没有持续多久,因为直到5月份,才达到之前一个月的水平。 2017年5月份的博客数据: 在那之后,基本上一直

2017-12-31 22:43:49 533 4

原创 Lucene深入学习(9)Lucene的索引优化

在创建索引过程中,一些参数可以影响索引的效率。如果了解一些优化的手段,可以更合理地配置应用。不过这都是一些思想,如果数据量达不到一定级别,用户量不到一定规模,默认的参数总是能满足绝大部分需求。合并因子 mergeFactormergeFactor是用来决定segment该如何被addDocument() 方法进行合并的。当mergeFactor取较小值时,索引时所使用的内存少,搜索未

2017-12-30 23:18:28 1254

原创 Lucene深入学习(9)Lucene的索引方式Directory

Tips 示例代码基于Lucene 6.2.1.Directory创建索引时,必须要用到,而它只有一个构造函数: public IndexWriter(Directory d, IndexWriterConfig conf) 这里的Directory是必须的。Directory是Lucene内部自定义的目录类型,它本身是一个抽象类,在Lucene自带的工具包中,Directory有两个子类,分别

2017-12-26 22:40:01 2010

原创 Lucene的版本迭代

Lucene已经发展到Lucene 7了,不过,Lucene 7是一个前瞻性的版本,其实,Lucene还在同时升级Lucene5 和Lucene6. Lucene在之前的版本迭代中,不断尝试新的设计思想,不断引入新的与时俱进的功能。这也导致Lucene的大版本不兼容,在我之前的项目中,从Lucene2升级到Lucene4,再升级到Lucene6,都不能平滑过渡,需要修改项目中使用到Lucene的部

2017-12-25 23:01:04 3581

原创 struts2 异常Unable to load bean 文件struts-default.xml

摘要: 项目中需要升级struts到struts2.5.14.1,这个版本有较大的改动,于是出现了较多的jar包冲突。很郁闷的是,很多问题在jetty服务器下,才会发生。日志的处理struts2.5.14.1的日志使用了log4j2的配置,如果项目中没有用到log4j,可能需要在引入struts的pom配置中exclude相关的日志处理包。并且在项目的合适位置引入log4j2.xml的配置文件。关于

2017-12-20 23:28:10 3200 2

原创 Lucene深入学习(8)Lucene的索引文件

生成索引文件使用最简洁的代价生成一组索引文件。 IndexWriter writer = null; Directory directory = FSDirectory.open(Paths.get("d://myindex")); IndexWriterConfig config = new IndexWriterConfig(); writer = new Inde

2017-11-30 23:54:56 1362

原创 Lucene深入学习(7)Lucene的索引过程

摘要: 索引是Lucene最重要的过程,通过IndexWriter的addDocument()方法可以加入各种Document。本节将以addDocument为入口,探索Lucene的索引过程。本次代码示例基于Lucene 6.2.1.索引调用方法IndexWriter的 addDocumentpublic long addDocument(Iterable<? extends IndexableF

2017-11-29 22:52:59 975

原创 Lucene深入学习(5)Lucene的IndexWriter

摘要: Lucene的索引器IndexWriter主要是创建索引,合并索引,控制索引的创建过程。本次代码示例基于Lucene 6.2.1.获得IndexWriter想要获得IndexWriter实例,需要用到唯一的构造器:public IndexWriter(Directory d, IndexWriterConfig conf)第一个参数指定了索引地址,第二个参数就是索引的配置信息了。Lucene

2017-11-26 23:14:57 2558 1

原创 Lucene深入学习(5)Lucene的Document与Field

Document与Field在Lucene中,document是一种逻辑文件。可以近似地认为它表示的是计算机中的一个文件。这个document是一种抽象的表示,它从各种维度来描述一个数据源中的每一条数据。 将一个Document与文件系统中的文件对应起来时,可以提取出很多数据单元,它们被一个称之为Field的类表示。 这里的Document-Field结构和关系型数据库结构类似,数据库的每一条记

2017-11-19 23:03:21 3338

原创 Lucene 深入学习(4)Lucene索引实现方式

前言: 在之前的代码代码演示中,已经能够对给定的数据建立索引。为了对文档进行索引,Lucene提供了五个基础类,这一节,将更为详细地解释与这些类有关的内容。IndexWriterpublic class IndexWriterIndexWriter是在索引过程中中的中心组件,它不是唯一用来修饰索引的类,这个类创建一个新的索引并且添加到一个已有的索引中。public abstract class D

2017-10-25 23:45:37 563

原创 Lucene 深入学习(3)Lucene索引初识

前言: Lucene的倒排索引是了解整个搜索的入口,本节将通过代码实例的方式初步认识Lucene的索引创建过程。原始文档可以使用任何文本文件来熟悉Lucene索引的创建,这里我选用了经典作品《致加西亚的信》英文版 A Message to Garcia,你可以在互联网上轻易地找到这篇文章。之所以用英文材料,是因为Lucene默认只支持英文,英文材料可以避免出现分词不准确造成的认知偏差,在学习完分词的

2017-10-24 22:26:22 576

原创 Lucene 深入学习(2)Lucene简介

前言: Lucene和信息检索有什么关系,它又有着哪些独特之处?本节着重介绍Lucene的基本知识。Lucene是什么Lucene是Apache软件基金会Jakarta项目的一个子项目,它是开源、免费、纯Java语言的全文检索工具包。它的原作者Doug Cutting是以为资深的全文检索专家,曾主导了某搜索引擎的研发工作。Lucene的优势Lucene能够如此流行跟它的一些优点是分不开的:索引文

2017-10-22 21:53:30 718

原创 Lucene 深入学习(1)全文检索

前言: Lucene 是一个高性能、可伸缩的全文检索工具包。在学习Lucene之前,应该先了解一些全文检索的基本知识。 全文检索是指计算机索引程序通过扫描文章中的每一个词,对每一个词建立索引,指明该词在文章中出现的次数和位置,当用户查询时,检索系统根据事先建立的索引进行查找,并将查找的结果反馈给用户的检索方式。信息检索(IR)与全文检索(Full-text Search)信息检索大约可以分为下

2017-10-15 23:19:59 580

原创 从CSDN到GitChat

一个偶然的机会,接触到了GitChat,他们希望我能自拟主题写自己熟悉的话题,会有一定的报酬,我答应了,毕竟写了好多年博客,第一次有人说可以给钱。 然后就开始了为期半个月的准备,包括话题的准备与文章的撰写。今天终于完成了整个Chat,确实需要准备很多材料。 因为读者是付费阅读的,不得不对用户负责。确实压力大,不能像在CSDN上随时写文,任意发挥,还要限制字数,考虑文章质量。 Chat对作者的要

2017-09-26 23:14:16 2910

原创 Solr 热更新,不重启修改配置文件

单机部署如果Solr是部署在Jetty等WEB容器中的话,需要容器本身支持,大部分情况下,支持是不好的。SolrCould部署在对schema.xml进行修改后,要想使schema.xml生效,需要重启SolrCould集群,然后加载配置文件。无法做到热更新。zookeeper配置solr更新schema.xml后,重新把配置文件注入到zookeeper。可以使用下面的脚本:./zkcli.sh -

2017-09-26 23:11:24 6004

原创 Solr 中的commit与optimize

摘要: 在Solr中,频繁的提交操作commit与优化操作optimize,会影响Solr的搜索效果。commit提交到Solr的添加、更新、删除操作只有在commit()方法被调用以后才生效。一般来说,不建议每次这样的操作都之后都直接调用commit()。添加的数据没有commit()不能被搜索到。建议每天调用几次commit()可。optimizeoptimize()是为了提高搜索效率,调用该方

2017-09-25 22:53:45 1999

原创 MapStruct处理Java实体的高级进阶使用

摘要: MapStruct有很多的配置选项,除了使用target和source外,还有一些注解选项可以实现更高级的功能。defaultValue有时候,在转换过程中,可能因为空值或其他原因使得映射结果不正确,此时可以指定一个默认值,防止程序出错。@Mappings( { @Mapping(target = "age", source = "evage", defaultValue

2017-08-28 23:26:35 18653

原创 MapStruct处理Java中枚举Enum类型使用与举例

摘要: MapStruct更擅长的是处理特殊情形下的java bean间转换,如Java中的枚举Enum类型转换。在学习了MapStruct简单使用方法之后,可以探索更复杂的业务情形。常规枚举Enum转换实体模型有一个User对象,其属性等级(grade)是一个枚举类型:public class User { public enum Grade{ AVERAGE,BRONZE,

2017-08-27 23:15:38 15972

原创 MapStruct处理Java中实体与模型间不匹配属性转换

摘要: 前面介绍了MapStrut简单用法,MapStrut的最重要的特点就是处理Java中实体与模型间不匹配属性的转换。实体模型有一个User对象:public class User { private Integer id; private String name; private double account; private boolean married;

2017-08-26 23:27:39 17754 5

原创 MapStruct实体间转换

摘要: 在实际项目中,我们经常需要将PO转DTO、DTO转PO等一些实体间的转换。比较出名的有BeanUtil 和ModelMapper等,它们使用简单,但是在稍显复杂的业务场景下力不从心。MapStruct这个插件可以用来处理domin实体类与model类的属性映射,可配置性强。建立Maven项目MapStruct需要醒目构建工具(如Maven)支持,如果项目结构不标准,可能无法生成对应的转换类。

2017-08-23 22:52:51 4382 1

原创 Solr查询空值字段

摘要: Solr的查询一般都是查找满足某个关键词的文档,偶然一个需求是查询Solr中某个字段不为空的数据。查询空值数据字符串类型可以通过下面这种查询方式找到所有描述description为空的数据。-description:* OR description:""整数类型可以通过下面这种查询方式找到所有页码page为空的数据。 -page:* OR page:0非空字段可以通过下面这种查询方式找到i

2017-07-30 22:58:51 8196

原创 Solr安全管理

摘要: 在搭建好Solr以后,我们可以通过Solr Admin Page管理页面简单的使用Solr,当然不希望这样的页面对外公开访问。可以通过认证的方式加密Solr admin page。Solr admin page不安全在Solr的管理页面可以做很多操作,不限于常用的查询命令,你还可以通过在Query页面更改Request-Handler来更新甚至删除数据。需要认证的HTTP请求我使用的测试环境

2017-07-30 18:18:05 1465

原创 Solr的Filed中indexed与stored属性

摘要: Solr的Filed中有很多参数,其中的index和store参数让人有点犯晕。消失的Field<field name="description_s" type="text" indexed="false" stored="false" required="false" />上面的这个Field的index和store属性都设置为false。如果你插入一片含有该field的doc到Solr,

2017-07-27 22:36:03 8550 2

原创 Solr 运维管理监控

摘要: 有时候需要对Solr状态进行监控,但是Solr自身不支持这种功能。需要借助一个工具Cloudera Manager。cloudera manager四大功能(1)管理:对集群进行管理,如添加、删除节点等操作。(2)监控:监控集群的健康情况,对设置的各种指标和系统运行情况进行全面监控。(3)诊断:对集群出现的问题进行诊断,对出现的问题给出建议解决方案。(4)集成:对hadoop的多组件进行整合

2017-07-26 23:12:00 3317

原创 Java8 新特性 函数式接口

摘要: Java8在使用Lambda时,需要函数式接口的声明。如果每次使用Lambda表达式都自己编写函数式接口,那就违背了Lambda表达式设计的初衷——更加简洁的书写代码,也不利于新特性的推广,于是JDK的设计人员内置了四大核心函数式接口。消费型接口Consumer供给型接口Supplier函数型接口Function#

2017-06-30 22:26:19 1904

原创 Java8 新特性Lambda表达式

摘要: Lambda表达式是Java SE 8中一个重要的新特性。lambda表达式允许你通过表达式来代替 功能接口。关于名称lambda表达式所使用的运算符是 - > , 通过下面这个图形演变,你可以知道它为什么叫这个名字。实际上,lambda来源于λ演算。 为何出现Lambda是一个匿名函数,我们可以把Lambda表达式理解为一段可以传递的代码。在java8以前,很多语言都支持lambda表达

2017-06-25 10:30:30 914 2

原创 Java8 新特性概述(60%)

摘要: Java8在2014年已经发布,现在已经逐渐被广大开发者所认同,越来越多的框架选用,越来越多的公司选择Java8,经过一段时间的学习,发现Java的一些改动值得学习。特性简介速度更快 Java8优化了垃圾回收机制,对底层的内存结构进行了升级,永久区被移除,用元空间代替(直接使用物理内存,而不是分配内存,OOM异常减少),MaxPremGenSize使用MaxMetaspaceSize。J

2017-06-24 17:25:59 693

翻译 Marklogic学习 由浅入深(D)—— Marklogic vs. Oracle

摘要: Oracle在发展自己的NoSQL数据库的时候,曾写过一篇文章质疑Marklogic,于是MarkLogic用下文怼了回去。MarkLogic’s Response to Oracle’s Competitive Comparison引言MarkLogic Server 是下一代基于XML的企业级DBMS,集数据库、搜索、应用服务器于一体。在各方都认可Marklogic的情况下

2017-06-12 00:02:00 968 3

原创 Marklogic学习 —— 安装Marklogic9

摘要: 作为一个企业级NoSQL数据库,MarkLogic有这独特的优势,本文介绍了如何在windows平台上安装Marklogic.实际生产中,一般会将其安装在linux平台上。准备类似于Oracle,Marklogic在非商用的情况下,对开发者来说是免费下载和使用的。 首先,需要在Marklogic开发者网站上注册,成为注册用户后才可以下载Marklogic. 接下来可以在产品中心,找

2017-05-28 23:20:41 1613

原创 Solr客户端查询Java

摘要: Solr有多种客户端工具,诸如JavaScript、Python、Java、Ruby等。对于熟悉这些编程语言的使用者来说,使用客户端工具可以很方便地操作Solr。简介使用SolrJ可以让Java程序员专注于Java代码的编写,不必关注Solr的实现细节。你可以在org.apache.solr.client.solrj找到SolrJ的Jar包。这里Jar包只用5个主要的类。对于使用者来说,只需

2017-05-20 22:40:17 1839

原创 Solr 查询语法

摘要: 默认的Solr查询语法扩展了Lucene的语法,其目的也就是检索索引。basic querySolr的查询用到了参数q,标准的查询语法就想下面这样: http://localhost:8983/solr/query?q=test 可以使用debug=query来分析查询过程: http://localhost:8983/solr/query?q=test&debug=query{

2017-05-14 00:24:55 5763

原创 Solr6 源码结构分析

摘要: Apache Solr的源码不是很复杂,从源码的结构角度看,更容易理解Solr的设计思想。Solr包结构Solr6的包结构如下:org.apache.solr.analysis org.apache.solr.client.solrj.embedded org.apache.solr.cloud org.apache.solr.cloud.overseer org.apache.so

2017-05-13 00:11:15 1500

原创 Solr服务原理(索引)

摘要: 在Solr中,用户通过向部署在servlet容器中的 Solr Web 应用程序发送 HTTP 请求来启动索引和搜索/查询。索引 Solr的索引servlet可以接受下面四种形式的索引请求add/update 允许向Solr添加文档或更新文档。直到提交后才能搜索到这些添加和更新commit 告诉Solr,应该使上次提交以来所做的所有更改都可以搜索到optimize 重构 Lucene

2017-04-30 10:12:50 2214

原创 Solr6的solrconfig.xml解读

摘要 solrconfig.xml配置文件主要定义了Solr的一些处理规则,包括索引数据的存放位置,更新,删除,查询的一些规则配置。luceneMatchVersion6.0.0表示Solr底层使用的是Lucene6lib 定义了Solr需要额外引用的jar包位置,如果对应的文件不存在,会自动忽略这一配置,一般建议将其注释掉,只添加需要使用的jar包。dataDir

2017-04-23 22:57:17 2692

原创 solr 近实时搜索

摘要: Solr的近实时搜索NRT(Near Real Time Searching)意味着文档可以在索引以后马上可以被查询到。Solr不会因为这次提交而阻塞更新操作,不会等待后台合并的完成而直接检索索引并返回数据。参见原文 利用NRT,就可以设置soft commit,因为标准的commit操作代价高昂,soft commit可以做到近乎实时的查询效果而不丢失数据。Commits 与 Opt

2017-04-22 23:22:02 7241 2

Windows6.1-KB2999226补丁

这个文件是 Windows的 KB2999226 补丁,在64位机器上工作的,可以解决计算机中丢失api-ms-win-core-***-|1-1-0.dll类似的问题。

2017-07-05

自定义Solr分词器

自定义的Solr 分词器,可以通过竖线&quot;|&quot;来分词,可以在博客http://blog.csdn.net/jiangchao858/article/details/68954044看到生成过程与使用步骤。

2017-04-02

第一个Java程序

第一个Java程序PPT

2017-04-01

kernel-headers-3.10.0-327.el7.x86_64.rpm

安装CenterOS 的时候需要用到的内核kernel-headers-3.10.0-327.el7.x86_64.rpm

2017-03-05

kernel-devel-3.10.0-327.el7.x86_64.rpm

安装CenterOS的时候需要用到的kernel-devel-3.10.0-327.el7.x86_64.rpm

2017-03-05

Git 32位_2.11.1.exe客户端

Git官网下载太慢,好不容易下载到了32位的2.11版本Git客户端,分享于此。

2017-02-15

ik-analyzer-solr6

支持Solr6的中文分词ik-analyzer,已经修改了源码,源码上传到了GitHub上,名字就是ik-analyzer-solr6

2016-11-15

mmseg4j-solr-2.3.2-with-mmseg4j-core

该压缩包包含`mmseg4j-solr-2.3.2.jar`和`mmseg4j-core-1.10.0.jar`,其中solr-2.3.2不是官方的版本,该版本有改动,使得mmseg4j可以很好的支持Solr6,如果你的Solr低于Solr6,请使用官方的mmseg4j-solr-2.3.0.jar或者其他版本。

2016-11-09

mmseg4j-solr-2.3.0-with-mmseg4j-core

mmseg4j-solr-2.3.0-with-mmseg4j-core是Solr的中文分词包,支持Solr5.x版本,向上兼容Solr6,但是不支持Solr6的所有版本。该压缩包含有mmseg4j-core-1.10.0.jar和mmseg4j-solr-2.3.0.jar。

2016-11-06

marklogic eclipse 插件XQDT

marklogic 的eclipse插件XQDT,官网上给我链接在eclipse上装插件失败了,就找到了这个离线的插件zip包。只需要解压文件后,复制到eclipse对应的目录下:features和plugins下,不需要其他配置,重启eclipse即可。

2015-11-28

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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