摘要: 为什么要设置相关度 设置相关读可以人为的影响搜索结果的排序,通过设置某一个域的boost,可以在同时出现多条匹配结果时提升排名。通过设置boost影响打分结果,boost是一个加权值(默认加权值为1.0f),它可以影响权重的计算。 设置相关度的时机 1.建立索引时设置 提升某个Document的权重,类似于竞价排名 if(file_name.equals("springmvc.... 阅读全文
posted @ 2017-02-28 11:46 Wesly186 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 通过Query 搜索 TermQuery 不对查询关键字进行分词处理,适合精确查询不分词的Field,如订单号,身份证号等 //创建查询对象Query query = new TermQuery(new Term("fileName", "springmvc_test.txt"));//搜索索引 目录 Directory directory = FSDirectory.open(ne... 阅读全文
posted @ 2017-02-28 11:46 Wesly186 阅读(97) 评论(0) 推荐(0) 编辑
摘要: 为什么需要使用IKAnalyzer Lucene自带的标准分析器无法中文分词 Lucene自带的中文分析器分词不准确 IKAnalyzer支持屏蔽关键词、新词汇的配置 使用示例 建立索引时 略 QueryParser查询时 略 单独使用进行分词 自定义词库 在classpath下定义IKAnalyzer.cfg.xml文件,如下: IK Analyzer 扩展配... 阅读全文
posted @ 2017-02-28 11:46 Wesly186 阅读(526) 评论(0) 推荐(0) 编辑
摘要: 建立索引 public void createIndex() throws IOException { //先指定索引库存放的位置 String dumpPath = "D:\\temp\\1110"; Directory directory = FSDirectory.open(new File(dumpPath)); //索引库存放在内存中 //Directory dir... 阅读全文
posted @ 2017-02-28 11:45 Wesly186 阅读(191) 评论(0) 推荐(0) 编辑
摘要: Document Document是文档或者数据的抽象,它包含很多的Field域对象(可以重复),最终是要被持久化保存到索引库中的 Field Lucene中的域对象,是对原始数据的切割,如:文件名,文件内容,文件大小等。域对象可以指定是否分词,是否索引和是否存储。不分词则会以一个完整的字段出现在索引中(如:商品id、订单号、身份证号等);不索引则不会被检索到,那么分词也没有了意义,但是可... 阅读全文
posted @ 2017-02-28 11:44 Wesly186 阅读(392) 评论(0) 推荐(0) 编辑
摘要: 什么是全文检索 全文检索是利用将文本文件中所有的词语建立索引,加快搜索速度及准确度的一种技术。当用户查询时根据建立的索引查找,类似于通过字典的检索字表查字的过程。 应用领域 搜索引擎(百度,搜狗) 站内搜索(微博搜索) 电商网站(京东,淘宝) 全文检索和数据库like查询的区别 like查询使用顺序匹配的方式,全文检索使用索引来加速查找 全文检索使用了分词建立索引,因此准确读要... 阅读全文
posted @ 2017-02-28 11:43 Wesly186 阅读(226) 评论(0) 推荐(0) 编辑
摘要: Lucene介绍 Lucene是apache下的一个开放源代码的全文检索引擎工具包。提供了完整的查询引擎和索引引擎,部分文本分析引擎。Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能。 依赖配置 Lucene是开发全文检索功能的工具包,从官方网站(http://lucene.apache.org/ )下载Lucene4.10.3,并解压得到... 阅读全文
posted @ 2017-02-28 11:43 Wesly186 阅读(163) 评论(0) 推荐(0) 编辑