
搜索引擎开发-Lucene 全面剖析教程——by 程刚(整理).
2.2、打开 IndexSearcher.................................................................................................................. 215
2.3、QueryParser 解析查询语句生成查询对象 .............................................................................. 216
2.4、搜索查询对象 ................................................................................................................................ 221
2.4、搜索查询对象 ................................................................................................................................ 239
2.4、搜索查询对象 ................................................................................................................................ 269
2.4、搜索查询对象 ................................................................................................................................ 299
一、Lucene 的查询语法 ....................................................................................................................................... 312
(1) 语法关键字 ...................................................................................................................................... 312
(2) 查询词(Term)................................................................................................................................. 313
(3) 查询域(Field) ................................................................................................................................. 313
(4) 通配符查询(Wildcard) ................................................................................................................. 313
(5) 模糊查询(Fuzzy) ........................................................................................................................... 313
(6) 临近查询(Proximity) .................................................................................................................... 313
(7) 区间查询(Range) .......................................................................................................................... 314
(8) 增加一个查询词的权重(Boost) ................................................................................................... 314
(9) 布尔操作符 ...................................................................................................................................... 314
(10) 组合................................................................................................................................................ 315
二、JavaCC 介绍 ................................................................................................................................................... 315
2.1、第一个实例——正整数相加 ................................................................................................................ 317
(1) 生成一个 adder.jj 文件 ................................................................................................................. 317
(2) 设定选项,并声明类 ...................................................................................................................... 317
(3) 声明一个词法分析器 ...................................................................................................................... 318
(4) 声明一个语法分析器 ...................................................................................................................... 319
(5) 用 javacc 编译 adder.jj 来生成语法分析器和词法分析器 ....................................................... 319
(6) 运行 Adder.java ............................................................................................................................ 322
2.2、扩展语法分析器 .................................................................................................................................... 323
2.3、第二个实例:计算器 ............................................................................................................................ 327
(1) 生成一个 calculator.jj 文件 ......................................................................................................... 328
(2) 设定选项,并声明类 ...................................................................................................................... 328
(3) 声明一个词法分析器 ...................................................................................................................... 328
(4) 声明一个语法分析器 ...................................................................................................................... 329
(5) 扩展词法分析器和语法分析器 ...................................................................................................... 330
(6) 用 javacc 编译 calculator.jj 来生成语法分析器和词法分析器 ............................................... 334
三、解析 QueryParser.jj ..................................................................................................................................... 342
3.1、声明 QueryParser 类 ......................................................................................................................... 342
3.2、声明词法分析器 .................................................................................................................................... 343
(1) 应用于所有状态的变量 .................................................................................................................. 343
(2) 默认状态的 Token.......................................................................................................................... 344
3.3、声明语法分析器 .................................................................................................................................... 346
(1) 从 Query 到 Clause ...................................................................................................................... 346
(2) 一个子语句 clause ......................................................................................................................... 349
1、BoostingQuery ...................................................................................................................................... 363
2、CustomScoreQuery ............................................................................................................................. 367
3、MoreLikeThisQuery.............................................................................................................................. 372