【Lucene4.8教程之四】分析

【Lucene4.8教程之四】分析

大家好,又见面了,我是全栈君。

1、基础内容

(1)相关概念

分析(Analysis),在Lucene中指的是将域(Field)文本转换成最主要的索引表示单元–项(Term)的过程。在搜索过程中,这些项用于决定什么样的文档可以匹配查词条件。

分析器对分析操作进行了封装,它通过运行若干操作,将文本转化成语汇单元,这个处理过程也称为语汇单元化过程(tokenization)。而从文本洲中提取的文本块称为语汇单元(token)。词汇单元与它的域名结合后,就形成了项。

(2)何时使用分析器

  • 建立索引期间
		Directory returnIndexDir = FSDirectory.open(indexDir);

		IndexWriterConfig iwc = new IndexWriterConfig(Version.LUCENE_48,
				new StandardAnalyzer(Version.LUCENE_48));

		IndexWriter writer = new IndexWriter(returnIndexDir, iwc);

  • 使用QueryParser对象进行搜索时
QueryParser parser = new QueryParser(Version.LUCENE_48, "contents",
				new SimpleAnalyzer(Version.LUCENE_48));

  • 在搜索中高亮显示结果时
(3)经常使用的4个分析器:
  • WhitespaceAnalyzer, as the name implies, simply splits text into tokens on whitespace characters and makes no other effort to normalize the tokens.
  • SimpleAnalyzer first splits tokens at non-letter characters, then lowercases each token. Be careful! This analyzer quietly discards numeric characters.
  • StopAnalyzer is the same as SimpleAnalyzer, except it removes common words (called stop words, described more in section XXX). By default it removes common words in the English language (the, a, etc.), though you can pass in your own set.
  • StandardAnalyzer is Lucene’s most sophisticated core analyzer. It has quite a bit of logic to identify certain kinds of tokens, such as company names,

四、其他内容

在创建IndexWriter时,须要指定分析器,如:
<span>		</span>IndexWriterConfig iwc = new IndexWriterConfig(Version.LUCENE_48,
<span>				</span>new StandardAnalyzer(Version.LUCENE_48));

<span>		</span>writer = new IndexWriter(returnIndexDir, iwc);

便在每次向writer中加入文档时。能够针对该文档指定一个分析器,如

writer.addDocument(doc, new SimpleAnalyzer(Version.LUCENE_48));


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/115433.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Java截取字符串方法_java通过split截取字符串

    Java截取字符串方法_java通过split截取字符串主要有以下几种方法:1、通过subString()方法来进行字符串截取(最常用)2、通过StringUtils提供的方法3、split()+正则表达式来进行截取先来介绍最常用的一种1、通过subString()方法来进行字符串截取,返回字符串中的子字符串,在java中有两种用法第一种,传递一个参数:publicStringsubstring(intbeginIndex)//该子字符串从指定索引处的字符开始,直到此字符串末尾。第二种,传递两个参数:

  • Qt Mac 在软件 icns图标制作

    Qt Mac 在软件 icns图标制作

  • 关于group by的基础用法和原理

    关于group by的基础用法和原理写在前面的话:用了好久groupby,今天早上一觉醒来,突然感觉groupby好陌生,总有个筋别不过来,为什么不能够select*fromTablegroupbyid,为什么一定不能是*,而是某一个列或者某个列的聚合函数,groupby多个…

  • vue 加载页面时触发时间_Vue 刷新页面时会触发事件吗「建议收藏」

    vue 加载页面时触发时间_Vue 刷新页面时会触发事件吗「建议收藏」使用localstorage做本地存储,然后我想在刷新页面或者离开页面的调用localstorage方法1、页面刷新使用localstorage,也就是当vue被实例化之后有如下几个可以供你使用:exportdefault{beforecreate(){//创建前状态}created(){//创建完毕状态}beforeMount(){//挂载前状态}mounted(){//…

  • webapi安全验证_手机测试路由器丢包率

    webapi安全验证_手机测试路由器丢包率无线局域网鉴别与保密基础结构WAPI是无线局域网安全协议,也被列为多种检测的测试项目。自联盟成员西电捷通研发WAPI技术以来,我们在密切跟踪WAPI安全技术的基础上,按照协议的技术特点将其工程实践化,而且,基于对WAPI安全协议的深刻理解,我们对WAPI安全协议的检测形成了一套系统方法,并研发了WAPI安全协议检测系统,如何保障WAPI安全协议检测系统测试的准确性和稳定性将是测试工作的核心。

    2022年10月15日
  • 一文搞懂基因融合(gene fusion)的定义、产生机制及鉴定方法[通俗易懂]

    一文搞懂基因融合(gene fusion)的定义、产生机制及鉴定方法[通俗易懂]一般来说,基因融合是指基因组层面的融合。但转录组层面也可能发生融合,主要是由于两个不同基因转录产生的RNA,由于某种原因融合在了一起,形成新的融合RNA,该RNA可能编码蛋白,也可能为非编码。而基因组

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号