Lucene介绍:Query
来源:互联网 发布:vb中阶乘 编辑:程序博客网 时间:2024/05/19 02:28
1)Term
Term表示的就是一个词,这里的词并不是我们生活中所谓的词语,而是lucene创建索引时所做的分词,使用的分词器不同这里对词的划分也就不同。例如‘爸爸去哪儿’,我使用IKAnalyzer分词后为‘爸爸’‘去哪儿’,这里我用‘爸爸’‘去哪儿’匹配都可以匹配,但是用‘爸爸去哪儿’‘爸爸去’‘爸’等都是无法匹配的。Term有三种构造方法。常用的有两种1、public Term(String fld, BytesRef bytes); 2、public Term(String fld, String text); 注意的是参数不要为空,BytesRef String都是传递的引用,所以应用的对象在后面不要发生改变,话说回来,让String引用的对象发生改变还是挺费劲的。
2)TermQuery
TermQuery是最简单最常用的一个Query的实现。TermQuery匹配包含指定的Term的Document。简单的构造方法TermQuery tq = new TermQuery(new Term("fieldName", "term"));匹配分filedName中包含term的,注意是包含,不是完全匹配,想要完全匹配怎么办?构建索引的是对这个field不分词就行了,还是要记住什么是Term.
3) BooleanQuery
当将多个TermQuery合并到一起时,可以使用BooleanQuery,通过BooleanClause参数决定TermQuery之间的合并关系.BooleanClause有三个值 1、MUST 该TermQuery必须满足 2、SHOULD 多个TermQuery至少满足一个 3、MUST_NOT TermQuery必须不满足当然BooleanQuery并不局限于TermQuery的合并,和可以和其他的Query合作。
4)PhrasesQuery
PhrasesQuery 是另一个常用的Query。匹配多个Term,通过坡度(slop)来指定任意两个指定的Term之间最多可以像个几个Term。MultiPhraseQuery 是一个更常见的PhraseQuery的形式,可以实现更为复杂的Term排列。具体例子【Always Be Coding】会给出。
5)TermRangeQuery
TermRangeQuery,很明显是按Term的范围来匹配。当然指定的field是可以比较的。特别说明数值类的不可以用这个Query,使用数值类特有的NumericRangeQuery。
6)NumericRangeQuery
NumericRangeQuery 匹配数值范围。要想使得NumericRangeQuery起作用,构建索引是也要使用数值域(IntField, LongField, FloatField, or DoubleField)
7)QueryParser
QueryParser是使用特定分词器解析query。将query分成若干个Term,然后去和Document匹配。多个Term之间的关系有点类似于BoolenQuery的 BooleanClause.SHOULD,但是匹配的term数会影响到结果的排序
8) MultiFieldQueryParser
MultiFieldQueryParser,很明显是同时对多个域进行分析。MultiFieldQueryParser.parse(Version matchVersion, String[] queries, String[] fields, Analyzer analyzer)MultiFieldQueryParser.parse(Version matchVersion, String[] queries, String[] fields, BooleanClause.Occur[] flags, Analyzer analyzer)MultiFieldQueryParser.parse(Version matchVersion, String query, String[] fields, BooleanClause.Occur[] flags, Analyzer analyzer)其中数组的长度一定要对应好
0 0
- Lucene介绍:Query
- Lucene--Query
- 【lucene】 Query
- lucene query
- lucene -- 4 各种Query
- lucene之Query
- Lucene query使用总结
- Lucene的各种query
- Lucene 4 Query
- Lucene Query Parser Syntax
- Lucene 学习 Query
- 构建各种Lucene Query
- Lucene各种Query
- Lucene 查询(Query)子类
- Lucene 查询(Query)子类
- lucene query语法详解
- lucene Query搜索
- Lucene介绍
- 利用反射实现简单的Spring注解注入实例
- hdu 5033 Building 单调栈
- 互动出版网APP
- 计算text的size
- MySql创建hive用户,并赋予权限
- Lucene介绍:Query
- appium+java+ios自动化环境的搭建部分代码,资料的搜集与整合。
- git format-patch的使用
- JQuery 跨框架(iframe)操作
- 什么是固件以及OpenWrt
- #pragma region和#pragma endregion关键字
- 百度面试实习 LBS部门
- CentOS 6.4下源码安装MySQL 5.6.14
- 判断周围是否有敌人的三种模式