Lucene 查询(Query)子类
来源:互联网 发布:金山终端防护优化系统 编辑:程序博客网 时间:2024/05/22 01:04
QueryParser(单域查询)
QueryParser子类对单个域查询时创建查询query,构造方法中需要传入Lucene版本号,检索域名和分词器。
QueryParser parser = new QueryParser(Version.LUCENE_43, field, analyzer);// 查询字符串Query query = parser.parse("key");
MultiFieldQueryParser(多域查询)
MultiFieldQueryParser parser2 = new MultiFieldQueryParser(Version.LUCENE_43, fields, analyzer);Query query2 = parser2.parse(key);
TermQuery(单个关键字域查询)
TermQuery tq=new TermQuery(new Term(field, key));
PrefixQuery(前缀字符查询)
PrefixQuery只需要指定前缀若干个字符preStr,以preStr开始的都会被匹配,比如”Lu”可以匹配”Luke” ,”Lucene”.
PrefixQuery prefixQuery=new PrefixQuery(new Term("field,key));
PhraseQuery(短语查询)
PhraseQuery phraseQuery=new PhraseQuery(); phraseQuery.setSlop(3);//关键词间距离 phraseQuery.add(new Term(field, "key1"));//关键词1 phraseQuery.add(new Term(field, "key2"));//关键词2
上面的查询实例可以匹配关键词key1和key2间距不超过3的文档,field为查询域。
WildcardQuery(通配符查询)
WildcardQuery wildcardQuery=new WildcardQuery(new Term(field, "基于?"));
?匹配1个字符,*匹配任意多个字符.
TermRangeQuery(字符串范围搜索)
TermRangeQuery rangeQuery=new TermRangeQuery(field, lowerTerm, upperTerm, includeLower, includeUpper);
五个参数分别为域名、域的下限值、域的上限值、是否包含下限、是否包含上限。比如:
TermRangeQuery rangeQuery=new TermRangeQuery(field, "aab", "azz", true, false);
NumericRangeQuery(数字范围搜索)
Query q = NumericRangeQuery.newFloatRange("weight", 0.03f, 0.10f, true, true);
matches all documents whose float valued “weight” field ranges from 0.03 to 0.10, inclusive.
BooleanQuery(布尔查询)
多个query对象组合成一个对象
BooleanQuery bQuery=new BooleanQuery(); bQuery.add(new TermQuery(new Term("title", "lucene")), Occur.MUST); bQuery.add(new TermQuery(new Term("content", "基于")), Occur.SHOULD); bQuery.add(new TermQuery(new Term("name", "java")), Occur.MUST_NOT);
上面的例子用于查询title中一定包含”lucene”(and)或者cotent包含”基于”(or)但name中一定不含” java”(not)的文档。
2 0
- Lucene 查询(Query)子类
- Lucene 查询(Query)子类
- Lucene 查询中的距离查询(proximity query)
- Lucene 的Query Parser(查询语法)
- Lucene 的Query Parser(查询语法)
- 基于lucene的案例开发:Query查询
- Lucene--Query
- 【lucene】 Query
- lucene query
- lucene.net 的查询方式query,条件判断
- lucene利用BooleanQuery进行多个Query组合查询
- Lucene查询语法详解(Lucene query syntax)- 用于Kibana搜索语句
- Query及其子类booleanquery
- Query的子类ConstantScoreQuery
- lucene: 自定义Query: IncludeQuery (包含关系查询,相当于SQL中的IN查询)
- lucene -- 4 各种Query
- lucene之Query
- Lucene query使用总结
- RabbitMQ1.8.3安装文档
- Linux /dev目录详解和Linux系统各个目录的作用
- 独立成分分析(Independent Component Analysis)
- linux下apache+mod_jk.so+tomcat整合(基础版)
- Android中View的绘制
- Lucene 查询(Query)子类
- 同一局域网内,别人无法访问我们wampserver
- TCP滑动窗口杂陈
- html5 web缓存localStorage和sessionStorage
- Android-handler用法
- leetcode 119.Pascal's Triangle II-杨辉三角形
- 分布式架构高可用架构篇_06_MySQL源码编译安装(CentOS-6.7+MySQL-5.6)
- build android N for RPI3
- Node.js开发入门(二)——HelloWorld再分析