lucene利用BooleanQuery进行多个Query组合查询
来源:互联网 发布:怎么在淘宝上发布虚拟 编辑:程序博客网 时间:2024/05/16 04:40
lucene3.0中BooleanQuery 实现与或的复合搜索 .
BooleanClause用于表示布尔查询子句关系的类,包括:BooleanClause.Occur.MUST,BooleanClause.Occur.MUST_NOT,BooleanClause.Occur.SHOULD。必须包含,不能包含,可以包含三种.有以下6种组合:
1.MUST和MUST:取得连个查询子句的交集。
2.MUST和MUST_NOT:表示查询结果中不能包含MUST_NOT所对应得查询子句的检索结果。
3.SHOULD与MUST_NOT:连用时,功能同MUST和MUST_NOT。
4.SHOULD与MUST连用时,结果为MUST子句的检索结果,但是SHOULD可影响排序。
5.SHOULD与SHOULD:表示“或”关系,最终检索结果为所有检索子句的并集。
BooleanClause用于表示布尔查询子句关系的类,包括:BooleanClause.Occur.MUST,BooleanClause.Occur.MUST_NOT,BooleanClause.Occur.SHOULD。必须包含,不能包含,可以包含三种.有以下6种组合:
1.MUST和MUST:取得连个查询子句的交集。
2.MUST和MUST_NOT:表示查询结果中不能包含MUST_NOT所对应得查询子句的检索结果。
3.SHOULD与MUST_NOT:连用时,功能同MUST和MUST_NOT。
4.SHOULD与MUST连用时,结果为MUST子句的检索结果,但是SHOULD可影响排序。
5.SHOULD与SHOULD:表示“或”关系,最终检索结果为所有检索子句的并集。
6.MUST_NOT和MUST_NOT:无意义,检索无结果。
package com.jiepu.lucene_23;import java.io.File;import java.io.IOException;import org.apache.lucene.document.Document;import org.apache.lucene.index.IndexReader;import org.apache.lucene.index.Term;import org.apache.lucene.search.BooleanClause.Occur;import org.apache.lucene.search.BooleanQuery;import org.apache.lucene.search.IndexSearcher;import org.apache.lucene.search.ScoreDoc;import org.apache.lucene.search.TermQuery;import org.apache.lucene.search.TopDocs;import org.apache.lucene.search.WildcardQuery;import org.apache.lucene.store.Directory;import org.apache.lucene.store.FSDirectory;/** * lucene利用BooleanQuery进行多个Query组合查询 * */public class LuceneWildCardSearcher {public static void main(String[] args) {String dir = "D:\\index";try {Directory directory = FSDirectory.getDirectory(new File(dir));@SuppressWarnings("deprecation")IndexReader reader = IndexReader.open(directory);IndexSearcher indexSearcher = new IndexSearcher(reader);Term term = new Term("content", "java*");WildcardQuery wildcardQuery = new WildcardQuery(term);Term term2 = new Term("datetime", "191111");TermQuery termQuery = new TermQuery(term2);BooleanQuery booleanQuery = new BooleanQuery();booleanQuery.add(wildcardQuery, Occur.MUST);booleanQuery.add(termQuery, Occur.MUST);TopDocs topDocs = indexSearcher.search(booleanQuery,null, 10);ScoreDoc scoreDocs[] = topDocs.scoreDocs;for (int i = 0; i < scoreDocs.length; i++) {Document document = indexSearcher.doc(scoreDocs[i].doc);System.out.println(document.get("id"));System.out.println(document.get("name"));System.out.println(document.get("text"));System.out.println(document.get("datetime"));}directory.close();} catch (IOException e) {e.printStackTrace();}}}http://blog.csdn.net/kingzuo/article/details/12096369
0 0
- lucene利用BooleanQuery进行多个Query组合查询
- Lucene 4.4利用BooleanQuery组合多个Query搜索
- lucene-booleanquery组合查询
- lucene查询之 多条件查询 BooleanQuery 可以组合查询条件。及代码示例
- BooleanQuery组合查询
- 【Spring-data-jpa】利用@query组合查询
- spring data jpa 利用@Query进行查询
- Hibernate利用Query接口进行HQL查询
- spring data jpa 利用@Query进行查询
- 利用Lucene.Net进行文档递归查询
- 利用Lucene.Net进行文档递归查询
- Lucene 查询(Query)子类
- Lucene 查询(Query)子类
- Query及其子类booleanquery
- lucene的BooleanQuery
- Lucene 4.7 BooleanQuery学习
- Lucene BooleanQuery实现
- Lucene 6.0中BooleanQuery
- 对人脸检测中误检漏检的一些理解~
- Edit Control
- 21.福建华南泉州电脑培训学校分享电脑中毒怎么办和处理方法
- Cordova配置文件简介
- Android 和 Html 之间的交互(Android(Java)与JavaScript(HTML))
- lucene利用BooleanQuery进行多个Query组合查询
- 音视频底层、即时通讯技术、音视频交互、跨平台基础
- Entity Framework 上下文在C#事务中间使用时,通过递归方法引入新构造的上下文访问入口导致错误
- 21.福建华南厦门厨师培训学校分享煲汤的6个禁忌
- UML——部署图
- 有用的matlab 代码
- PKCS8密钥格式
- Python - 在定义函数时,为什么默认参数不能放在必选参数前面?
- JAVA中int与String的相互转化方法和使用