一.Lucene介绍 1. Lucene简介 最受欢迎的java开源全文搜索引擎开发工具包.提供了完整的查询引擎和索引引擎,部分文本分词引擎(英文与德文两种西方语言).Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便在目标系统中实现全文检索功能,或者是以此为基础建立起完整的全文检索引擎.是Apache的子项目,网址:http://lucene.apache.org/ 2. Lucene用途 为软件开发人员提供一个简单易用的工具包,以方便在目标系统中实现全文检索功能,或者是以此为…
paper 4中介绍了支持向量机,结果说到 Maximum Margin Classifier ,到最后都没有说“支持向量”到底是什么东西.不妨回忆一下上次最后一张图: 可以看到两个支撑着中间的 gap 的超平面,它们到中间的 separating hyper plane 的距离相等(想想看:为什么一定是相等的?),即我们所能得到的最大的geometrical margin γ˜.而“支撑”这两个超平面的必定会有一些点,试想,如果某超平面没有碰到任意一个点的话,那么我就可以进一步地扩充中间的 g…
一 什么是kvm KVM 全称 Kernel-Based Virtual Machine.也就是说 KVM 是基于 Linux 内核实现的,这就使得linux内核本身就相当于一个Hypervisor. Hypervisor即vmm,主要功能就是用来控制生成vm,并管理多个vm的运行,不同的vm中可以安装不同的操作系统,这些操作系统共用一台硬件主机, 因为直接使用linux内核的调度器进行管理,所以比xen的代码少很多 二 为何要用kvm 虚拟化是云计算的基础之一,而无论是在部署,还是在研发.测试…
一.什么是redis.redis有哪些特性.redis有哪些应用场景.redis的版本 1. 什么是redis redis是一种基于键值对(key-value)数据库,其中value可以为string.hash.list.set.zset等多种数据结构,可以满足很多应用场景.还提供了键过期,发布订阅,事务,流水线,等附加功能, 流水线: Redis 的流水线功能允许客户端一次将多个命令请求发送给服务器, 并将被执行的多个命令请求的结果在一个命令回复中全部返回给客户端, 使用这个功能可以有效地减少…
1.SELECT命令 通过查看配置文件可以知道Redis默认有17个库,从0-16. 默认是在0号库.选择库使用SELECT <dbid>命令.例如选择0号库  SELECT 0 2.DBSIZE .KEYS *命令 DBSIZE  查看key的数量 KEYS * 查看所有的key 3.FLUSHDB 清理当前库所有的key FLUSHALL 清理所有库的所有key…
一.搜索流程详解 1. 先看一下Lucene的架构图 由图可知搜索的过程如下: 用户输入搜索的关键字.对关键字进行分词.根据分词结果去索引库里面找到对应的文章id.根据文章id找到对应的文章 2. Lucene搜索API 图示 3. Lucene搜索代码示例 先在pom.xml里面引入查询分析器模块 <!-- lucene-queryparser 查询分析器模块 --> <dependency> <groupId>org.apache.lucene</groupI…
本文介绍下lucene生成的索引有哪些文件组成,每个文件包含了什么信息.基于Lucene 4.10.0. 数据结构 索引(index)包含了存储的文档(document)正排.倒排信息,用于文本搜索.索引又分为多个段(segments),每个新添加的doc都会存到一个新segment中,不同的segments又会合并成一个segment.segment存储着具体的documents,每个doc有一系列的字段(field)组成,一个field的值是多个词(term),一个term是以一些bytes…
package com.jadyer.lucene; import java.io.File; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; import org.apache.lucene.analysis.standard.StandardAnalyzer; import org.apache.lucene.document.Document; import org.…
一.Lucene提供的分词器StandardAnalyzer和SmartChineseAnalyzer 1.新建一个测试Lucene提供的分词器的maven项目LuceneAnalyzer 2. 在pom.xml里面引入如下依赖 <!-- lucene 核心模块 --> <dependency> <groupId>org.apache.lucene</groupId> <artifactId>lucene-core</artifactId&…
上一篇介绍了用lucene建立索引和搜索,但是那些都只是在本机上运行的,如果希望在服务器上做成web服务该怎么办呢? 一个有效的方法就是用socket通信,这样可以实现后端与前端的独立,也就是不管前端用什么(比如PHP)都可以Lucene只提供检索功能. 简单来说,socket就是实现不同的进程之间通讯的一个通道.socket由两部分组成:服务端和客户端.有两种:单进程和多进程. 所以认识socket的阶梯大概是这样的: 1.用java本地做服务端和客户端,实现不同程序之间的单进程通讯: 2.用…