上QQ阅读APP看书,第一时间看更新
3.6.3 简单的查询解析器
QueryParser使用Analyzer对“title:car”中的查询词car再次处理成为Query对象。
如果要修改QueryParser的行为,可以继承QueryParser类,重写其中的getFieldQuery方法。例如,同时查询多个列的MultiFieldQueryParser。
要改变查询分析器的某一部分,例如查询实例化,可以通过继承解析器类来实现,改变实际的查询语法需要深入地了解JavaCC解析器生成器。
使用MultiFieldQueryParser查询多个列:
MultiFieldQueryParser mq = new MultiFieldQueryParser(new String[]{"title", "body"}, analyzer);
在QueryParser传入一个字符串的地方MultiFieldQueryParser传入一个字符串数组。