Lucene系列-概述】的更多相关文章

为了生存,就得干一行爱一行.那就学习下lucene吧. 全文检索介绍 流程: 建索引 准备待搜索文档 文档分词:将文档分成一个个单独的单词,去除标点符号.停词(无意义的冠词介词等),得到token 语言处理:统一小写,单词缩减或转变为词根形式,得到term 索引:用term创建字典,term->doc,对字典按字母顺序排序,合并相同的term成为文档倒排链表.term->doc1,doc2,doc3 搜索 输入查询语句 处理查询语句:词法分析.语法分析.语言处理,得到语法树 搜索索引,得到符合…
这是一个正在准备中的系列文章,主要参考的是<Web Scraping with Python_Collecting Data from the Modern Web-O'Reilly(2015)>.这是一本关于网络数据采集(俗称的爬虫)的书,由浅入深,比较适合入门.在学习过程中也肯定会参考一些优秀博主的优秀文章,这个系列的文章就是为了记录自己的学习轨迹,如果有人也在关注的话,可以一起学习交流,也是极好的. 后续文章发布的时候,也会相应地更新这个地方的目录.…
域缓存,加载所有文档中某个特定域的值到内存,便于随机存取该域值. 用途及使用场景 当用户需要访问各文档中某个域的值时,IndexSearcher.doc(docId)获得Document的所有域值,但访问速度比较慢,而且只能获得Stored域的值. FieldCache能获得域值数组,根据docId random access域值.FieldCache是高级内部API,通常用户不会直接使用,Lucene的域值排序.过滤等功能会在内部使用域缓存. 原理 域缓存构造过程: un-invert倒排索引…
lucene是一个java开源的高效全文检索工具包,最近做项目要用到,把学习的过程记录一下. 第一步:下载安装jdk 1.首先从官网下载jdk(下载之前先查看你的电脑是多少位操作系统,如果是32就下载32的,如果是64位就下载64位的,否则不能兼容).下载之后解压到当前文件夹,双击安装JDK的可执行文件,按步骤和提示,一直点"下一步"完成安装,这里假设安装到目标文件C:\Program Files\Java\jdk1.8.0_25: 2.JDK安装完成后,需手动配置环境变量,右键&qu…
本文介绍下lucene生成的索引有哪些文件组成,每个文件包含了什么信息.基于Lucene 4.10.0. 数据结构 索引(index)包含了存储的文档(document)正排.倒排信息,用于文本搜索.索引又分为多个段(segments),每个新添加的doc都会存到一个新segment中,不同的segments又会合并成一个segment.segment存储着具体的documents,每个doc有一系列的字段(field)组成,一个field的值是多个词(term),一个term是以一些bytes…
近实时搜索(near-real-time)可以搜索IndexWriter还未commit的内容,介于immediate和eventual之间,在数据比较大.更新较频繁的情况下使用.本文主要来介绍下如何使用,其原理还没弄透,改天再续.本文代码基于lucene 4.10 IndexReader的重建 想要看到新的结果就需要重新打开一个IndexReader,DirectoryReader提供了DirectoryReader openIfChanged(DirectoryReader oldReade…
1.facet的直观认识 facet:面.切面.方面.个人理解就是维度,在满足query的前提下,观察结果在各维度上的分布(一个维度下各子类的数目). 如jd上搜“手机”,得到4009个商品.其中品牌.网络.价格就是商品的维度(facet),点击某个品牌或者网络,获取更细分的结果. 点击品牌小米,获得小米手机的结果,显示27个. 点击移动4G,获得移动4G.小米手机,显示4个. 2.facet特性 facet counting:返回一个facet下某子类的结果数.如上面的品牌维度下小米子类中满足…
Lucene搜索的时候就要构造查询语句,本篇就介绍下各种Query.IndexSearcher是搜索主类,提供的常用查询接口有: TopDocs search(Query query, int n);//find the top n hits for query TopDocs search(Query query, Filter filter, int n);// find the top n hits for query, applying filter if no-null Query q…
分析器介绍 搜索的基础是对文本信息进行分析,Lucene的分析工具在org.apache.lucene.analysis包中.分析器负责对文本进行分词.语言处理得到词条,建索引和搜索的时候都需要用到分析器,两者应当是同一个,否则没法很好的匹配. Lucene的分析器往往包括一个分词器(Tokenizer)和多个过滤器(TokenFilter),过滤器负责对切出来的词进行处理,如去掉敏感词.转换大小写.转换单复数等.tokenStream方法中往往是先使用一个Tokenizer,接着使用多个Tok…
因为本人用的黑金四代开发板,中央芯片采用ALTERA的cycloneIV E,所以就此器件阅读altera官网资料,并做相应的笔记,以便于以后查阅 Cyclone IV 器件系列具有以下特性:■ 低成本.低功耗的 FPGA 架构:■ 6 K 到 150 K 的逻辑单元■ 高达 6.3 Mb 的嵌入式存储器■ 高达 360 个 18 × 18 乘法器,实现 DSP 处理密集型应用■ 协议桥接应用,实现小于 1.5 W 的总功耗 逻辑单元 15408 嵌入式存储器 504Kbits 嵌入式18*18…