【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));


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

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

(0)
上一篇 2022年2月4日 下午3:00
下一篇 2022年2月4日 下午3:00


相关推荐

  • MySQL timestampdiff()函数[通俗易懂]

    MySQL timestampdiff()函数[通俗易懂]下面说明了TIMESTAMPDIFF函数的语法。TIMESTAMPDIFF(unit,begin,end);TIMESTAMPDIFF函数返回begin-end的结果,其中begin和end是DATE或DATETIME表达式。TIMESTAMPDIFF函数允许其参数具有混合类型,例如,begin是DATE值,end可以是DATETIME值。如果使用DATE值,则TIMESTAMPDIFF函…

    2022年6月11日
    47
  • 钉钉推出全球首个为AI打造的工作智能操作系统Agent OS

    钉钉推出全球首个为AI打造的工作智能操作系统Agent OS

    2026年3月16日
    3
  • 啥是SBC_sbc是什么意思的缩写

    啥是SBC_sbc是什么意思的缩写SBC简介SBC应用SBC功能★SBC简介会话边界控制器SessionBorderController,即会话边界控制器SBC已经逐渐成为NGN和IMS网络的标准配置产品(如同Lanswitch和路由器)。也被广泛称为BAC(边界接入控制器),定位在IMS网络的ABG(accessbordergateway),解决NGN业务部署中遇到的NAT/FW穿越

    2025年10月31日
    5
  • svm 算法通俗介绍

    svm 算法通俗介绍http://blog.csdn.net/v_july_v/article/details/7624837作者:July、pluskid;致谢:白石、JerryLead出处:结构之法算法之道blog

    2022年8月1日
    7
  • 数据库连接池到底应该设多大?这下终于get到了!

    点击上方“全栈程序员社区”,星标公众号 重磅干货,第一时间送达 作者:kelgon www.jianshu.com/p/a8f653fc0c54 本文内容95%译自这篇文章: ht…

    2021年6月28日
    130
  • 计算机视觉-OpenCV入门讲解

    计算机视觉-OpenCV入门讲解计算机视觉是一门研究如何使机器 看 的科学 更进一步的说 就是是指用摄影机和电脑代替人眼对目标进行识别 跟踪和测量等机器视觉 并进一步做图形处理 使电脑处理成为更适合人眼观察或传送给仪器检测的图像 作为一个科学学科 计算机视觉研究相关的理论和技术 试图建立能够从图像或者多维数据中获取 信息 的人工智能系统 这里所指的信息指 Shannon 定义的 可以用来帮助做一个 决定 的信息 因为感知可以看作是从感官信号中提取信息 所以计算机视觉也可以看作是研究如何使人工系统从图像或多维数据中 感知 的科学 视觉是各个应

    2026年3月26日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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