Lucene 搜索功能】的更多相关文章

搜索过程 图解: 主要 API: IndexSearcher:    //所有搜索都通过 IndexSearcher 进行,他们将调用该类中重载的 search() 方法 Query:            //封装某种查询类型的具体子类,Query 实例将会被传递给 IndexSearcher 的 search() 方法 QueryParser:      //将用户输入的查询表达式处理成各种具体的 Query 对象 TopDocs:          //保存由 IndexSearcher.…
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.…
前言 一直以来个人博客的搜索功能很蹩脚,只是自己简单用数据库的like %keyword%来实现的,所以导致经常搜不到想要找的内容,而且高亮显示.摘要截取等也不好实现,所以决定采用Lucene改写博客的搜索功能.先来看一下最终效果: 本文demo地址:https://github.com/liuxianan/lucene-demo (包括本文需要用到的jar包可以从这里面下载) 效果演示地址:http://blog.liuxianan.com/search?kw=%E7%AB%AF%E5%8F%…
现在基本上所有网站都支持搜索功能,现在搜索的工具有很多,比如Solr.Elasticsearch,它们都是基于 Lucene 实现的,各有各的使用场景.Lucene 比较灵活,中小型项目中使用的比较多,我个人也比较喜欢用. 1.效果展示 我前段时间做了一个网站,搜索功能用的就是 Lucene 技术,效果还可以,支持中文高亮显示,支持标题和摘要同时检索,若能检索出,均高亮展示等功能,可以看下效果. 点击查看更清晰 可以看出,搜索 “微服务” 之后,可以将相关的资源全部检索出来,不管是标题包含还是摘…
上一节主要总结了一下Lucene是如何构建索引的,这一节简单总结一下Lucene中的搜索功能.主要分为几个部分,对特定项的搜索:查询表达式QueryParser的使用:指定数字范围内搜索:指定字符串开头搜索以及多条件查询. 1. 对特定项的搜索 要使用Lucene的搜索功能,首先得有索引,也就是说Lucene首先得针对特定的文件生成特定的索引,然后我们才能搜索,这在第一节里描述的很清楚,那么构建索引的例子也是使用第一节中的例子,在这就不再赘述了,然后生成了索引后,如何来搜索呢?先看第一种搜索方式…
package junit; import java.io.File; import java.io.IOException; import java.text.ParseException; import java.util.ArrayList; import java.util.List; import org.apache.commons.lang.math.NumberUtils; import org.apache.lucene.document.Document; import or…
package com.ljq.utils; import java.io.File; import java.util.ArrayList; import java.util.List; import org.apache.log4j.Logger; import org.apache.lucene.document.Document; import org.apache.lucene.index.IndexWriter; import org.apache.lucene.index.Inde…
Lucene有多种搜索方式,可以根据需要选择不同的方式. 1.词条搜索(单个关键字查找) 主要对象是TermQuery 调用方式如下: Term term=new Term(字段名,搜索关键字);Query query=new TermQuery(term);Hits hits=searcher.search(query); 2.组合搜索(允许多个关键字组合搜索) 主要对象是BooleanQuery 调用方式如下: Term term1=new Term(字段名,搜索关键字);TermQuery…
lucene为程序添加搜索功能,此功能基于已创建好的文档的索引之上.这里我已经为一些文档建立了索引,并保存到硬盘上.下面开始针对这些索引,添加搜索功能. 1.简单的TermQuery搜索 Java代码 /** * [TermQuery方式搜索] * * 对特定的项进行查询,如filename等于XPP3-LICENSE.txt的文件 * @throws Exception */ public void testTerm() throws Exception { Directory dir=FSD…
2.1构建Lucene搜索 2.1.1 Lucene内容模型 一个文档(document)就是Lucene建立索引和搜索的原子单元,它由一个或者多个字段(field)组成,字段才是Lucene的真实内容.每一个字段有都有一个名字来标识它,一个文本或者一个二进制值以及一系列的详细的选择项.为检索到你原生态的内容,你必须首先将其解释成Lucene的文档和字段.然后,在搜索时,字段值被检索到.比如,用户要检索“title:Java”,Lucene库将会检索那些包含标题为Java字段(field)的文档…