Elasticsearch 初探(3)——简单查询与中文分词
一、简单查询1.1 查询全部请求方式: GET 请求路径: ES服务的IP:端口/索引名/{分组名,可省略}/_search 以上篇文章建立的索引为例,搜索结果如下: 1234567891011121314151617181920212223242526272829303132333435363738{ "took": 0, "timed_out": false, " ...
阅读更多
Elasticsearch 初探(2)——相关概念与索引、数据操作
一、基本概念由于Elasticsearch也是基于Lucene实现,因此它的许多概念和Luncene相似,关于Lucene的知识,可以参考文章:Lucene初探——基于Lucene 6.6.2。 1.1 Node、ClusterElasticsearch本质上是一个分布式数据库,允许多台服务器协同工作,每台服务器可以运行多个 Elastic 实例。单个 Elastic 实例称为一个节点(node) ...
阅读更多
Elasticsearch 初探(1)——基本介绍与环境搭建
一、Elasticsearch简介1.1 什么是ElasticsearchElasticsearch是一个实时的分布式搜索和分析引擎。它可以用于全文搜索,结构化搜索以及分析,当然你也可以将这三者进行组合。 Elasticsearch是一个建立在全文搜索引擎 Apache Lucene™ 基础上的搜索引擎,可以说Lucene是当今最先进,最高效的全功能开源搜索引擎框架。 Elasticsearch使 ...
阅读更多
Java 并发编程——Thread 类的使用
在学习Thread类之前,先介绍与线程相关知识:线程的几种状态、上下文切换,然后接着介绍Thread类中的方法的具体使用。 一、线程的状态线程从创建到最终的消亡,要经历若干个状态。一般来说,线程包括以下这几个状态:创建(new)、就绪(runnable)、运行(running)、阻塞(blocked)、time waiting、waiting、消亡(dead)。 当需要新起一个线程来执行某个子任务 ...
阅读更多
Java 并发编程——volatile 关键字解析
volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。 volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模型有关的,因此在讲述volatile关键之前,我们先来了解一 ...
阅读更多
Java 并发编程——线程池的使用
本文基于JDK 1.6,在高版本JDK中源码有所出入。 一、Java中的ThreadPoolExecutor类java.uitl.concurrent.ThreadPoolExecutor类是线程池中最核心的一个类,因此如果要透彻地了解Java中的线程池,必须先了解这个类。下面我们来看一下ThreadPoolExecutor类的具体实现源码。 在ThreadPoolExecutor类中提供了四个构 ...
阅读更多
Java 设计模式——工厂模式
一、什么是工厂模式工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一,它提供了一种创建对象的最佳方式。 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。 优点: 一个调用者想创建一个对象,只要知道其名称就可以了。 扩展性高,如果想增加一个产品,只要扩展一个工厂类就可以。 屏蔽产品的具体实现,调用者只关心产 ...
阅读更多
Java 设计模式——单例模式
一、单例模式的介绍1.1 什么是单例模式单例模式指的是一个类只会有一个实例,即一个类只有一个对象实例。它的特点有: 单例类只能有一个实例 单例类必须自己创建自己的唯一实例 单例类必须给所有其他对象提供这一实例 1.2 单例模式的应用场景(1)一个系统中可以存在多个打印任务,但是只能有一个正在工作的任务;售票时,一共有100张票,可有有多个窗口同时售票,但需要保证不要超售(这里的票数余量就 ...
阅读更多
理解 HTTP、HTTPS 协议
一、主要特点 简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。 灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。 无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请 ...
阅读更多
字符串的模式匹配(KMP)算法
一、背景给定一个主串(以 S 代替)和模式串(以 P 代替),要求找出 P 在 S 中出现的位置,此即串的模式匹配问题。 Knuth-Morris-Pratt 算法(简称 KMP)是解决这一问题的常用算法之一,这个算法是由高德纳(Donald Ervin Knuth)和沃恩·普拉特在1974年构思,同年詹姆斯·H·莫里斯也独立地设计出该算法,最终三人于1977年联合发表。 在继续下面的内容之前,有 ...
阅读更多