Lucence内建的Query对象lucene
来源:互联网 发布:linux脚本创建 编辑:程序博客网 时间:2024/05/21 14:42
Lucence内建的Query对象lucene
1.TermQuery 词条搜索
解析:
对某个固定词条的指定,实现搜索索引中存在该词条的文档
示例:
IndexSearcher searcher = new IndexSearcher(INDEX_STORE_PATH);
Term t = new Term("bookname", "钢);
Query query = new TermQuery(t);
System.out.println(query);
Hits hits = searcher.search(query);
2.BooleanQuery 布尔搜索
解析:
lucence各种复杂的查询,最终都表示成Boolean型,用法相当于sql查询语句中条件的 and ,or 作用
BooleanClause.Occur.SHOULD or的关系
BooleanClause.Occur.MUST and 的关系
BooleanClause.Occur.MUST_NOT not的关系
示例:
IndexSearcher searcher = new IndexSearcher(INDEX_STORE_PATH);
Term t = new Term("bookname", "一);
Term t2 = new Term("bookname", "三);
TermQuery q1 = new TermQuery(t);
TermQuery q2 = new TermQuery(t2);
BooleanQuery query = new BooleanQuery();
query.add(q1, BooleanClause.Occur.SHOULD);
query.add(q2, BooleanClause.Occur.SHOULD);
System.out.println(query);
Hits hits = searcher.search(query);
3.RangeQuery范围搜索
解析:
用于查找一定范围内的文档
示例:
Term begin = new Term("bookNumber", "0000004");
Term end = new Term("bookNumber", "0000008");
Query query = new RangeQuery(begin,end,inclusive);
System.out.println(query);
Hits hits = searcher.search(query);
4.PrefixQuery 前缀搜索
解析:
前缀搜索,相当于sql查询的 like 'XX%'
示例:
IndexSearcher searcher = new IndexSearcher(INDEX_STORE_PATH);
Term prefix = new Term("bookname",searchValue);
PrefixQuery query = new PrefixQuery(prefix);
System.out.println(query);
Hits hits = searcher.search(query);
5.PhraseQuery 短语搜索
解析:
将输入的词条当短语来查找
示例:
IndexSearcher searcher = new IndexSearcher(INDEX_STORE_PATH);
PhraseQuery query = new PhraseQuery();
query.add(new Term("bookname","钢) );
query.add(new Term("bookname","铁));
query.setSlop(2);
System.out.println(query);
//搜索含有钢和铁关键字
Hits hits = searcher.search(query);
6.MultiPhraseQuery 多短语搜索
解析:
示例:
IndexSearcher searcher = new IndexSearcher(INDEX_STORE_PATH);
MultiPhraseQuery query = new MultiPhraseQuery();
Term t =new Term("bookname","钢);
Term t2 = new Term("bookname","和);
query.add(new Term[]{t2,t});
query.add(new Term("bookname","铁));
Term t4 = new Term("bookname","的);
Term t3 = new Term("bookname","战);
query.add(new Term[]{t4,t3});
System.out.println(query);
Hits hits = searcher.search(query);
7.FuzzyQuery 模糊搜索
解析:对单字的模糊查找
示例:
IndexSearcher searcher = new IndexSearcher(INDEX_STORE_PATH);
Term t =new Term("bookname","钢);
FuzzyQuery query = new FuzzyQuery(t,0.3f,1);
System.out.println(query);
Hits hits = searcher.search(query);
8.WildcardQuery 通配符搜索
解析:
在查询时借助通配符,来匹配
示例:
Term t = new Term("bookname","钢");
WildcardQuery query = new WildcardQuery(t);
System.out.println(query);
Hits hits = searcher.search(query);
- Lucence内建的Query对象lucene
- Lucene的各种query
- Lucene(Lucence)建立索引(字段)
- Lucene中内置常用Query对象
- Lucene--Query
- 【lucene】 Query
- lucene query
- 搜索工具库Lucence名称的来源,lucence是什么意思?Lucene是Doug妻子的中名 ,同时也是他外祖母的姓
- Lucene中Query语法树的整理
- Lucene 的Query Parser(查询语法)
- Lucene 的Query Parser(查询语法)
- 记Lucene GEO Query的一点优化
- 基于lucene的案例开发:Query查询
- lucene当中的各种query(三)
- SQLiteDataBase对象的query()
- Lucence的基本原理
- Lucence索引的存储
- Lucence的各种查询
- 树型视的三个结构
- 设计模式之 command
- 学软件开发几年,自己最感兴趣的一点就还是.net 的 现在工作大多用asp 找个老师指点迷津……
- msn多帐号
- 自我的反省
- Lucence内建的Query对象lucene
- outlook如何设置自动转发到gmail里面
- Oracle 常用命令
- A*算法解决八数码问题的C++实现
- UNICODE编译环境下CString转char[]的方法
- doxygen使用简介(1)
- doxygen使用简介(2)
- 如何正确的使用Java序列化技术
- Uboot技术文档链接