lucene-SpanQuery精解和与正则RegexQuery精解

来源:互联网 发布:数据报表什么意思 编辑:程序博客网 时间:2024/06/10 00:32

1、SpanTermQuery:与TermQuery一样。

Term t=new Term("contenct","david");

SpanTermQuery query=new SpanTermQuery(t);

2、SpanFirstQuery:从first的内容起始位置开始,在一个固定的宽度内查找所指定的词条。

Term t=new Term("content","mary");

SpanTermQuery people=new SpanTermQuery(t);

SpanFirstQuery query=new SpanFirtstQuery(people,3);//3是宽度

3、SpanNearQuery:可以查找具有一定无关单词长度的短语,也可将另一个SpanQuery的查询结构作为整体进行考虑。

Term t1=new Term("content","Mary");

Term t2=new Term("content","poor");

SpanTermQuery people=new SpanTermQuery(t1);

SpanTermQuery how=new SpanTermQuery(t2);

SpanNearQuery query=new SpanNearQuery(new SpanQuery[]{people,how},3,false);//3是跨度,第三个参数表示每个词是否一定要顺序出现在文档中

 

4、SpanorQuery:把所有SpanQuery的结果综合起来,作为它的检索结果。

5 、SpanNotQuery:从第一个SpanQuery的查询结果中,去掉第2个SpanQuery的查询结果。

6、RegexQuery:使用正则表达式

String regex="ttp://[a-z][1,3]/.abc/.com/.*";

Term t=new Term("url",regex);

RegexQuery query=new RegexQuery(t);