lucene学习(6)

2019-03-03 11:36

System.out.printIn(\query = parser.parse(\System.out.printIn(\)

该程序会产生如下输出:. fuzzy: subject:kountry~0.5 fuzzy 2: subject:kcountry~0.7

同样的性能可以揭示:使用通配符查询(WildcardQuery)和使用模糊査询是一致 的,它们还可以通过自定义方式禁止运行,具体可以参考[1]6.3.2小节。

3.3.7 MatchAIIDocsQuery

当输人*:*后,QueryParser 会生成 MatchAIIDocsQuery。

这个操作会将QueryParser所产生的所有Lucene核心査询类型进行包装。但这并 不是QueryParser的一切:它还支持一些非常实用的Query子句分组语法、加权子句以及将子句限制在特定的域上。

3.3.8 分组查询、域选择与加权

使用小括号建立子查询。创建查询时,默认的域名是创建QueryParser时提供的。使用 field:key可将搜索范围限定在某一个具体域,也可以使用field(a b c)的形式将三个项的查询以逻辑OR的形式连接起来。

在浮点数前面附上一个^符号可以对查询处理进行加权因子的设置。举例来说,查询表达式junit^2.0 testing会将junit TermQuery的加权系数设置为2.0,并维持 testing TermQuery的默认加权系数1.0。你可以对任何类型的查询进行加权,这其中包括插入的组。

ANTLR和JFlex项目可提供高于QueryParser能力的语法和功能。

4. 分析器与分析过程

对于Lucene核心来说,分析操作会出现在两个时间点:建立索引期间和使用QueryParser对象进行搜索时。在搜索结果中高亮显示被搜索内容时,也可能要用到分析操作。

几个内置分析器的解析示例如下:

4.1内置分析器说明

? WhitespaceAnalyzer:顾名思义,该分析器通过空格来分割文本信息,而并不

对生成的语汇单元进行其他的规范化处理.

? SimpIeAnalyzer:该分析器会首先通过非字母字符来分割文本信息,然后将语

汇单元统一为小写形式。需要注意的是,该分析器会去掉数字类型的字符, 但会保留其他字符。

? StopAnalyzer:该分析器功能与SimpIeAnalyzer类似.区别在于,前者会去除常

用单词.在默认情况下,它会去除英文中的常用单词(如the、a等),但你也可以根据需要自己设置常用单词.

? StandardAnalyzer:这是Lucene最复杂的核心分析器。基于JFlex-based语法

操作。它包含大量的逻辑操作来识别某些种类的语汇单元,比如公司名称、E-mail地址以及主机名称等. 它还会将语汇单元转换成小写形式,并去除停用词和标点符号.

详见[1] 第4.3节

在真正应用中,一般创建自己的分析器链。这需要自己扩展TokenFilter和Analyzer,一个例子见[1]4.4同音词,4.5同义词处理,4.6词干分析

4.2 分析过程简述

更多描述见[1]第四章

创建IndexWriter后,即为文档选择了默认的分析器。若某个文档需要使用特殊的分析器时,addDocument方法和updateDocument方法都可以选择对应的分析器。为了确保文本信息被分析器处理,可以在创建域时指定Field.Index.ANALYZED

或者Field. Index.ANLYZED_NO_NORMS参数。若需要将整个域值作为一个语汇单元处 理,如图 4.1 中 Field 3 所示,则可以将 Field. Index.NOT_ANALYZED 或 Field. Index. NOT_ANALYZED_NO_NORMS作为第4个参数传人该域。 Analyzer通过TokenStream类将文本逐字转换为语汇单元流。

语汇单元是分析过程产生的基本段元,携带文本值和其他一些元数据。[1]P111 项(term),位置增量(position-Increment)、 偏移量(offset)、类型(type)、标志位(flags)和有效负载。位置增量为0通常用于插入同义词或其他类似信息。

如:

public TokenStream tokenStream{String fieldName, Reader reader) { return new StopFilter{true,

new LowerCaseTokenizer(reader), stopWords); )

过滤顺序对分析过程的影响很重要。[1]P121


lucene学习(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:星级酒店餐厅菜单之认识

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: