lucene多关键字查询
来源:互联网 发布:免费单机室内设计软件 编辑:程序博客网 时间:2024/04/19 23:36
lucene下进行多个关键字String[]keyWords查询,使用BooleanQuery简单地表示其逻辑关系:
BooleanQuery bquery = new BooleanQuery();bquery.add(Query query, BooleanClause.Occuroccur);
其中,BooleanClause.Occur occur有三种形式,可以构成这些关键字之间与或关系:
BooleanClause.Occur.MUST必须包含,类似于逻辑运算的与BooleanClause.Occur.MUST _NOT必须不包含,类似于逻辑运算的非BooleanClause.Occur.SHOULD可以包含,类似于逻辑运算的或
Example:
在“content”域查找包含“音乐”或“广告”的doc,代码如下:
BooleanQuery bquery = new BooleanQuery();bquery.add(new TermQuery(new Term("content", ” 音乐”)), BooleanClause.Occur.SHOULD);bquery.add(new TermQuery(new Term("content", ” 广告”)), BooleanClause.Occur.SHOULD);TopDocs topDocs = searcher.search(bquery,TOPDOC_NUM);
多短语搜索参考http://blog.csdn.net/caoxu1987728/article/details/2324201(多谢,学习了!)
前缀搜索:表示A(B|C|D)
IndexSearcher searcher=newIndexSearcher(INDEX_STORE_PATH); MultiPhraseQuery query=new MultiPhraseQuery(); query.add(new Term("bookname","A")); Term t1=new Term("bookname","B"); Term t2=new Term("bookname","C"); Term t3=new Term("bookname","D"); query.add(new Term[]{t1,t2,t3}); Hits hits=searcher.search(query); for(int i=0;i<hits.length();i++) { System.out.println(hits.doc(i)); }
后缀搜索:表示(A|B)C
ndexSearcher searcher=newIndexSearcher(INDEX_STORE_PATH); MultiPhraseQuery query=new MultiPhraseQuery(); Term t1=new Term("bookname","A"); Term t2=new Term("bookname","B"); query.add(new Term[]{t1,t2}); query.add(new Term("bookname","C")); Hits hits=searcher.search(query); for(int i=0;i<hits.length();i++) { System.out.println(hits.doc(i)); }
混合搜索:表示(A|B)C(D|E)
IndexSearcher searcher=newIndexSearcher(INDEX_STORE_PATH); MultiPhraseQuery query=new MultiPhraseQuery(); Term t1=new Term("bookname","A"); Term t2=new Term("bookname","B"); query.add(new Term[]{t1,t2}); query.add(new Term("bookname","C")); Term t3=new Term("bookname","D"); Term t4=new Term("bookname","E"); query.add(new Term[]{t3,t4}); Hits hits=searcher.search(query); for(int i=0;i<hits.length();i++) { System.out.println(hits.doc(i)); }继续学习
- lucene多关键字查询
- lucene 一个关键字多字段查询
- Lucene查询的保留字和关键字
- lucene查询后关键字高亮显示
- lucene多条件查询
- lucene模糊查询 精确查询 包含关键字 不包含关键字 包含全部关键字 范围查询 模糊查询 通配符查询 lucene各种查询实现示例
- 使用lucene搜索引擎实现对关键字的简单查询
- Lucene学习之一:使用lucene为数据库表创建索引,并按关键字查询
- lucene实现 某段时间内 多个存储字段 多关键字的查询 并且加入排序规则 思路
- Lucene查询
- lucene查询
- lucene+查询
- lucene查询
- lucene---查询
- SSH 多关键字查询
- select2 多查询关键字
- lucene高亮关键字
- lucene 关键字高亮
- DWR高级主题之反向Ajax(DWR3的轮询模式演示1)
- qt中关于设置颜色
- 跟我一起写makefile
- T-SQL查询进阶—理解SQL Server中的锁
- wince的24bpp(24位)颜色深度实现
- lucene多关键字查询
- linux shell 字符串操作(长度,查找,替换)详解
- poj1185炮兵阵地
- LINUX下多路径(multi-path)介绍及使用
- T-SQL查询高级--理解SQL SERVER中非聚集索引的覆盖,连接,交叉和过滤
- Visual Studio不如Eclipse的十五个细节
- WINCC的OPC连接
- HR 锁定 解锁 和更新人员信息
- [oracle] Oracle sys和system用户、sysdba 和sysoper系统权限、sysdba和dba角色的区别