02 2019 档案
摘要:1.什么是solrJ solrj是访问Solr服务的java客户端,提供索引和搜索的请求方法,SolrJ通常在嵌入在业务系统中,通过SolrJ的API接口操作Solr服务,如下图: 依赖jar包: 2.用solrJ对solr后台进行增删改查 2.1 添加文档 2.2删除文档 2.3 修改文档 在so
阅读全文
摘要:1.什么是solr solr是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文检索服务器。Solr提供了比lucene风味丰富的查询语言,同时实现了可配置,可扩展,并对索引,搜索性能进行优化。 Solr可以独立运行,运行在Jetty,Tomcat等这些Servlet容器
阅读全文
摘要:1.索引库的维护 索引库删除 (1) 全删除 第一步:先对文档进行分析 第二步:直接调用IndexWriter的deleteAll方法 (2) 根据条件删除 第一步:与上面代码一样 第二步:使用IndexWriter的deleteDocuments方法,传入query条件 索引库修改 对索引库的修改
阅读全文
摘要:下图是语汇单元的生成过程: 从一个Reader字符流开始,创建基于Reader的Tokenizer分词器,经过三个TokenFilter生成语汇单元Tokens。 要看分词器的分析效果,只需要看Tokenstream中的内容就可以了。每个分词器都有一个方法tokenStream,返回一个tokenS
阅读全文
摘要:1. Lucene的下载 Lucene是开发全文检索功能的工具包,从官网下载Lucene4.10.3并解压。 官网:http://lucene.apache.org/ 版本:lucene7.7.0 (学习上没必要最新的,因为企业中也不会升级太快) Jdk要求:1.7以上 2.使用的jar包 核心包
阅读全文
摘要:1.Lucene基础 (1) 简介 Lucene是apache下的一个开放源代码的全文检索引擎工具包。提供完整的查询引擎和索引引擎;部分文本分析引擎。 Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便在目标系统中实现全文检索的功能。 (2) 应用场景 对于数据量大,数据结构不固定的
阅读全文
摘要:一. 定义与类型 定义:针对一组算法,将每一种算法都封装到具有共同接口的独立的类中,从而是它们可以相互替换。策略模式的最大特点是使得算法可以在不影响客户端的情况下发生变化,从而改变不同的功能。当代码中有大量的if...else...时,可以使用策略模式 类型:行为型。 二. 使用场景 (1) 系统有
阅读全文
摘要:一. 定义与类型 定义:提供一种方法,顺序访问一个集合对象中的各个元素,而又不暴露该对象的内部表示 类型:行为型。 二. 使用场景 (1) 访问一个集合对象的内容而无需暴露它的内部表示 (2) 为遍历不同的集合结构提供一个统一的接口 三. 优缺点 优点: (1) 分离了集合对象的遍历行为 缺点: (
阅读全文
摘要:一. 定义与类型 定义:定义了一个算法的骨架,并允许子类为一个或多个步骤提供实现,模板方法使得子类可以在不改变算法结构的情况下,重新定义算法的某些步骤 类型:行为型。 二. 使用场景 (1) 一次性实现一个算法的不变的部分,并将可变的行为留给子类来实现 (2) 各子类中公共的行为被提取出来并集中到一
阅读全文
摘要:一. 定义与类型 定义:为其他对象提供一种代理,以控制对这个对象的访问,代理对象在客户端和目标对象之间起到中介作用 类型:结构性。 二. 使用场景 (1) 保护目标对象 (2) 增强目标对象 三. 优缺点 优点: (1) 代理模式能将代理对象与真实被调用的目标对象分离 (2) 一定程度上降低了系统的
阅读全文
摘要:一. 定义与类型 定义:将抽象部分与他的具体实现部分分离,使它们都可以独立的变化,通过组合的方式建立两个类之间的联系,而不是继承 类型:结构性。 二. 使用场景 (1) 抽象和具体实现之间增加更多的灵活性 (2) 一个类存在两个(或多个)独立变化的维度,且这两个(或多个)维度都需要独立进行扩展 (3
阅读全文
摘要:一. 定义与类型 定义:将对象组合成树形结构以表示“部分-整体”的层次结构,组合模式使客户端对单个对象和组合对象保持一致的方式处理 类型:结构性 假设有一个树形结构的菜单,而在菜单中还可能有子菜单,子菜单下还可能有子菜单,子菜单下还有文件等等, 这种情况下可以使用组合模式。 二. 使用场景 (1)
阅读全文
摘要:一. 定义与类型 定义:提供了减少对象数量从而改善应用所需的对象结构的方式,运用共享技术有效地支持大量细粒度的对象 类型:结构性 二. 使用场景 (1) 常常应用于系统底层的开发,以便解决系统的性能问题 (2) 系统有大量相似对象,需要缓冲池的场景 三. 优缺点 优点: (1) 减少对象的创建,降低
阅读全文
摘要:一. 定义与类型 定义:将一个类的接口转换成客户期望的另一个接口,使原本不兼容的类可以一起工作 类型:结构性 二. 使用场景 (1) 已经存在的类,它的方法和需求不匹配时(方法结果相同或相似) (2) 不是软件设计阶段考虑的设计模式,是随着软件维护,由于不同产品,不同厂家造成功能类似而接口不相同情况
阅读全文
摘要:一. 定义与类型 定义:在不改变原有对象的基础之上,将功能附加到对象上,提供了比继承更有弹性的替代方案(扩展原有对象功能) 类型:结构性 二. 使用场景 (1) 扩展一个类的功能或给一个类添加附加职责 (2) 动态的给一个对象添加功能,这些功能可以再动态的撤销 三. 优缺点 优点: (1) 是继承的
阅读全文