MultiTermQuery包含以下query:
FuzzyQuery, NumericRangeQuery, PrefixQuery, TermRangeQuery, WildcardQuery
FuzzyQuery是一种模糊查询,它可以简单地识别两个相近的词语。 即相似度匹配
NumericRangeQuery数字形式的范围查询
PrefixQuery前缀搜索A Query that matches documents containing terms with a specified prefix. A PrefixQuery is built by QueryParser for input like app*.
TermRangeQuery:主要用于文本范围查找;
使用通配符查询,*代表0个或多个字母,?代表0个或1个字母。
Query query=new WildcardQuery(new Term("contents","?ild*"));
Hits hits=searcher.search(query);
使用QueryParser和wildcardQuery使用的是相同的语法。但使用QueryParser时,首个字母不能是通配符
SpanQuery按照词在文章中的距离或者查询几个相邻词的查询
SpanQuery包括以下几种:
SpanTermQuery:词距查询的基础,结果和TermQuery相似,只不过是增加了查询结果中单词的距离信息。
SpanFirstQuery:在指定距离可以找到第一个单词的查询。
SpanNearQuery:查询的几个语句之间保持者一定的距离。
SpanOrQuery:同时查询几个词句查询。
SpanNotQuery:从一个词距查询结果中,去除一个词距查询。
ConstantScoreQuery
A query that wraps a filter and simply returns a constant score equal to the query boost for every document in the filter
看了一下这个类的构造函数ConstantScoreQuery(Filter filter) ,我的理解就是通过构造filter来完成文档的过滤,并且返回一个复合当前过滤条件的文档的常量分数,这个分数等于为查询条件设置的boost
CustomScoreQuery
org.apache.lucene.search.function Class CustomScoreQuery
WARNING: The status of the search.function package is experimental. The APIs introduced here might change in the future and will not be supported anymore in such a case.
根据api的说明,本query暂时不了解
ConstantScoreQuery
A query that wraps a filter and simply returns a constant score equal to the query boost for every document in the filter
看了一下这个类的构造函数ConstantScoreQuery(Filter filter) ,我的理解就是通过构造filter来完成文档的过滤,并且返回一个复合当前过滤条件的文档的常量分数,这个分数等于为查询条件设置的boost
CustomScoreQuery
org.apache.lucene.search.function Class CustomScoreQuery
WARNING: The status of the search.function package is experimental. The APIs introduced here might change in the future and will not be supported anymore in such a case.
根据api的说明,本query暂时不了解
ValueSourceQuery以及其子类FieldScoreQuery
这两个类也是位于org.apache.lucene.search.function下,所以暂时不了解