热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

lucene添加扩展词需要重新索引_lucene全文检索、Field域、IKanalyzer(IK中文分词器)...

lucene:apache下的一个开放源代码的全文检索引擎工具包(jar),通过它可以实现全文检索。Field域的详细介绍是否分词:是否对

lucene:apache下的一个开放源代码的全文检索引擎工具包(jar),通过它可以实现全文检索。

Field 域的详细介绍

是否分词:是否对域的内容进行分词处理。

比如:订单号、身份证号不需要分词

是否索引:将Field分析后的词进行索引,只有索引方可搜索到。

比如:商品名称、商品简介分析后进行索引,订单号、身份证号不用分析但也要索引,这些将来都要作为查询条件。

是否存储:将Field值存储在文档中,存储在文档中的Field才可以从Document中获取

比如:商品名称、订单号,凡是将来要从Document中获取的Field都要存储。

f240638a0d7bcee99cbac8756c546e34.png
e0b949ed1373a01f1ec9f80abda8d433.png

1、标准

  • 分词:是否有意义
  • 索引:是否要进行检索
  • 存储:是否要显示

2、field的类型

分词 索引 存储
TextField y y y|n
StringField n y y|n
StoredField n n y
LongField y y y|n

1df37cd8ea1295beb506513688d7f89d.png

----------------------------------------------------------------------

中文分词器 IK-analyzer

1

第一步:把jar包添加到工程pom文件中

pom

689c6e719b23e60ec94934609b477048.png

第二步:把配置文件和扩展词典和停用词词典添加到项目中

6bbe5a675dd2104eb1d3fa398dbd1a4e.png
2e00b413105f2ee22aaab14ec65f753e.png

----------------------------------------------------------------------

lucene实现全文检索:

索引和检索流程图:

0766b5f4e7ae9b370ed445e3b995b0cd.png

1、绿色表示索引过程,对要搜索的原始内容进行索引构建一个索引库,索引过程包括:获得原始文档à创建文档对象à分析文档à创建索引

2、红色表示搜索过程,从索引库中搜索内容,搜索过程包括:用户通过搜索界面à创建查询à执行搜索,从索引库搜索à渲染搜索结果

1.创建索引

//创建文档列表,保存多个Docuemnt

2.创建文档对象

//文档对象,文件系统中的一个文件就是一个Docuemnt对象

3. Ik中文分词器

Analyzer

4.创建索引

//指定索引和文档存储的目录

第二步:查询索引

第一步:创建一个Directory对象,并指定索引和文档的目录。

//指定索引和文档的目录

第二步:创建一个indexReader对象,并指定Directory对象。

//索引和文档的读取对象

第三步:创建一个indexsearcher对象,并指定IndexReader对象

//创建索引的搜索对象

第四步:创建一个QueryParser对象,并指定(默认收索域、分词器)和查询的关键词。

(Ik中文分词器)

//创建分词器(创建索引和所有时所用的分词器必须一致)

第五步:执行查询。

//搜索:第一个参数为查询语句对象, 第二个参数:指定显示多少条

第六步:返回查询结果。遍历查询结果并输出。

//从搜索结果对象中获取结果集

第七步:关闭IndexReader对象

indexReader




推荐阅读
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • camel_使用Camel在来自不同来源的Solr中索引数据
    camelApacheSolr是建立在Lucene之上的“流行的,快速的开源企业搜索平台”。为了进行搜索(并查找结果),通常需要从不同的源(例如内容管理 ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 本文讨论了Kotlin中扩展函数的一些惯用用法以及其合理性。作者认为在某些情况下,定义扩展函数没有意义,但官方的编码约定支持这种方式。文章还介绍了在类之外定义扩展函数的具体用法,并讨论了避免使用扩展函数的边缘情况。作者提出了对于扩展函数的合理性的质疑,并给出了自己的反驳。最后,文章强调了在编写Kotlin代码时可以自由地使用扩展函数的重要性。 ... [详细]
  • Spring框架《一》简介
    Spring框架《一》1.Spring概述1.1简介1.2Spring模板二、IOC容器和Bean1.IOC和DI简介2.三种通过类型获取bean3.给bean的属性赋值3.1依赖 ... [详细]
  • OpenMap教程4 – 图层概述
    本文介绍了OpenMap教程4中关于地图图层的内容,包括将ShapeLayer添加到MapBean中的方法,OpenMap支持的图层类型以及使用BufferedLayer创建图像的MapBean。此外,还介绍了Layer背景标志的作用和OMGraphicHandlerLayer的基础层类。 ... [详细]
  • 本文介绍了解决java开源项目apache commons email简单使用报错的方法,包括使用正确的JAR包和正确的代码配置,以及相关参数的设置。详细介绍了如何使用apache commons email发送邮件。 ... [详细]
  • Struts2+Sring+Hibernate简单配置
    2019独角兽企业重金招聘Python工程师标准Struts2SpringHibernate搭建全解!Struts2SpringHibernate是J2EE的最 ... [详细]
  • struts2重点——ValueStack和OGNL
    一、值栈(ValueStack)1.实现类:OGNLValueStack2.对象栈:CompoundRoot( ... [详细]
  • Maven构建Hadoop,
    Maven构建Hadoop工程阅读目录序Maven安装构建示例下载系列索引 序  上一篇,我们编写了第一个MapReduce,并且成功的运行了Job,Hadoop1.x是通过ant ... [详细]
  • 在工作中,遇到需要将excel表中的特定数据提取出来,并将数据以键值对的形式存储到map集合中。因为我用的是maven管理的jar包,所 ... [详细]
  • 一:什么是solrSolr是apache下的一个开源项目,使用Java基于lucene开发的全文搜索服务器;Lucene是一个开放源代 ... [详细]
  • mysql+全文检索设计,基于sphinx+mysql全文检索架构设计.doc
    基于sphinxmysql全文检索架构设计.doc还剩2页未读,继续阅读下载文档到电脑,马上远离加班熬夜!亲,喜欢就下载吧& ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
author-avatar
寒宝儿_____
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有