Lucene 其实很简单的,它最主要就是做两件事:建立索引和进行搜索。利用Lucene搜索前先要建立词库,也是所说的“建立索引”。这样Lucene才会“认识”这些词。
Lucene 建立索引需要用到如下几个类:
IndexWriter:lucene中最重要的的类之一,它主要是用来将文档加入索引,同时控制索引过程中的一些参数使用。 Analyzer:分析
原创
2023-03-19 09:30:23
96阅读
Lucene就是一个全文检索的工具,建立索引用的,类似于新华字典的目录 这里使用的是lucene-4.4.0版本,入门代码所需jar包如下图所示(解压lucene-4.4.0后的目录): 入门代码: 原理分析图: demo演示: 根据入门代码流程提炼工具类代码: bean: 转换工具类: Dao层:
原创
2021-04-28 20:08:26
150阅读
lucene 的排序 lucene 的过滤器 lucene 的高亮器的使用 lucene 查询条件的使用
原创
2021-04-28 20:08:24
131阅读
import java.io.IOException;import org.apache.lucene.analysis.Analyzer;import org.apache.lucene.analysis.SimpleAnalyzer;import org.apache.lucene.document.Document;import org.apache.lucene.document.Fiel
原创
2021-08-05 14:36:19
163阅读
建立索引:
import java.io.File;import java.io.FileReader;import java.io.IOException;import java.util.Date;import org.apache.lucene.analysis.standard.StandardAnalyzer;import org.apache.lucene.document.Docum
转载
2021-08-05 15:39:35
162阅读
Lucene学习笔记
可以搜索文本文件,理论上可以搜索任何类型的数据。只要先把数据转化为文本,就可以对数据进行索引和搜索。
使用了反向索引的机制,维护一个词/短语的表,对于每个词和短语都有一个链表描述有哪些文档包含这个词和短语。这样用户输入查询条件的时候,搜索引擎先对输入的条件分词,分成词和短语,然后到建立好的索引上面查找,最终返回索引相关的文档。
原创
2011-10-24 18:57:38
605阅读
一、Filter应用场景假如有人搜索了一个关键词,通过Lucene查出来了所有的文档,读者比较关心最新的一些内容,因此需要将某些内容过滤掉。只显示用户敏感的文档数据即可。这就要用到过滤器。二、代码演示public void filter(String queryString, Filter filter) { try { IndexSearcher index...
原创
2023-03-06 17:41:03
207阅读
一、Solr的下载Solr是对Lucene的封装,让开发人员使用更加的方便,这里我们下载3.5版本的Solr。点击这里下载Solr3.5版本。二、Solr的启动把刚刚下载的Solr解压之后,在example文件夹中有一个start.jar文件,我们使用java -jar start.jar将它启动起来,Solr有内置的服务器,它采用的是Jetty,一个小巧的服务器,不需要配置就可以运行...
原创
2023-03-06 19:51:50
149阅读
一、Luke介绍Luke是一个查询索引的工具,Luke的下载点击这里看第二部分,这里就不多讲了,需要注意的是Lucene和Luke要版本匹配,否则Luke是打不开Lucene索引的。首先打开Luke,选择索引的目录,就可以打开索引,就可以看到界面了,右上角有个Re-open表示重新加载索引。Lukeyou有5个界面,依次是索引界面、文档页面、查询页面、文档页面、插件页面。二、页面功能介绍...
原创
2023-03-06 17:41:01
166阅读
一、简单介绍Lucene的搜索public void searcher() { try { // 创建Directory Directory directory = FSDirectory.open(new File("E:\\Lucene\\IndexLibrary")); // 创建IndexReader Index...
原创
2023-03-06 19:48:40
133阅读
一、域存储选项(Field.Store.*)Field.Store.YES:将会存储域值,原始字符串的值将会保存在索引中,可以进行恢复操作,对于主键和标题,可以采用这种方式存储。Field.Store.NO:不会存储域值,通常与Index.ANALYZED合起来使用,索引一些如文章正文等不需要恢复的文档。二、域索引选项(Field.Index.*)Field.Index.ANALY...
原创
2023-03-06 19:48:41
136阅读
一、Tika介绍Tika是2008年由Apache组织开发的项目,主要用于打开不同的文档。Tika的下载请点击这里。在处理文档索引的时候,有时候会碰到pdf,html,word这种非纯文本的内容,这些内容怎么来建立索引呢,这就要用到Tika了,Tika像一个桥梁一样,连通了IndexWriter和上层的各种文件类型。二、Tika的使用使用java -jar命令来打开刚刚下载的jar包。...
原创
2023-03-06 19:51:52
98阅读
一、高亮显示用到的类Fragmenter:拿到一个字符串之后,对字符串进行分段 QueryScorer:查询评分,将评分最高的展示给用户 Encoder:显示出来的文本有两种,一种是SimpleEncode(忽略掉HTML标签),一种是DefaultEncode(展示HTML标签) Formatter:自定义标注高亮文本标签二、代码实例这里简单展示下高亮类的使用,对一个句子做了高亮...
原创
2023-03-06 17:40:59
247阅读
solr笔记
原创
精选
2014-08-28 18:51:33
1476阅读
一、SolrJ的使用导入相关jar包,打开solr-3.5/dist/solrj-lib,找到下面五个文件:commons-codec-1.5.jar,commons-httpclient-3.1.jar,commons-io-1.4.jar,jcl-over-slf4j-1.5.5.jar,slf4j-api-1.5.5.jar。再找到dist路径下的apache-solr-core-3.5...
原创
2023-03-06 19:51:49
96阅读
一、删除索引public void delete() { IndexWriter indexWriter = null; try { indexWriter = new IndexWriter(directory, new IndexWriterConfig(Version.LUCENE_35, new StandardAnalyzer(Version.LUC...
原创
2023-03-06 19:48:40
428阅读
一、排序介绍Lucene对文档搜索完成后,显示的结果是有一个顺序的,如果没有设置排序规则,那么这个顺序就是按照文档的评分降序排列,至于评分的计算,是一个比较复杂的公式,这里不先研究了。可是有时候,我们需要根据需求,改变默认的排序规则,这时候就要用到自定义排序啦,下面来看一下自定义排序是怎么使用的吧。二、代码演示package com.wsy;import org.apache.l...
原创
2023-03-06 17:41:03
234阅读
一、分词器的作用分词器的作用就是得到一个TokenStream流,这个流中存储了分词相关的一些信息,可以通过属性获取到分词的详细信息。二、自定义Stop分词器package com.wsy;import org.apache.lucene.analysis.*;import org.apache.lucene.analysis.tokenattributes.CharTermA...
原创
2023-03-06 19:48:36
226阅读
一、Lucene存在的意义我们通常的数据库搜索,比如说在content中搜索某个内容,我们需要使用like的方式,这种方式的效率的非常低下的。这便要说到Lucene了,Lucene搜索的时候,用到了索引,这个索引类似于我们查字典时候最前面的索引表,相比于拿一本字典去翻看,我们通过索引表来查询,效率一定会很高,这就是全文搜索存在的意义。首先Lucene会将整个结构创建一个索引,之后搜索的时候,根...
原创
2023-03-06 19:48:40
178阅读
一、需求分析索引的目标现在需要设计一个留言管理系统,我们需要对哪些字段建立索引呢?留言的内容 留言的标题 留言的附件索引的对象索引的对象,要存放什么属性呢?messageId title summary createDate content:这里的content存放了文本内容或者附件内容既然上面说到content既可以存放文本内容,又可以存放附件内容,那么文本内...
原创
2023-03-06 17:40:59
87阅读