Elasticsearch的javaAPI之Query DSL-filters
来源:互联网 发布:淘宝没有品牌怎么办 编辑:程序博客网 时间:2024/06/05 03:32
Elasticsearch的javaAPI之Query DSL-filters
和REST query dsl一样,elasticsearch提供了一个完整的Java query dsl。 工厂过滤器建造者是
如何构建查询?使用
import org.elasticsearch.index.query.FilterBuilders.*;
请注意,在
下面选取了几个常用的filer:
andfilter
FilterBuilders.andFilter(
FilterBuilders.rangeFilter("postDate").from("2010-03-01").to("2010-04-01"),
FilterBuilders.prefixFilter("name.second", "ba")
);
注意,您可以缓存结果,用
bool filter
FilterBuilders.boolFilter()
.must(FilterBuilders.termFilter("tag", "wow"))
.mustNot(FilterBuilders.rangeFilter("age").from("10").to("20"))
.should(FilterBuilders.termFilter("tag", "sometag"))
.should(FilterBuilders.termFilter("tag", "sometagtag"));
用
exists filter
FilterBuilders.existsFilter("user");
matchall filter
FilterBuilders.matchAllFilter();
notfilter
FilterBuilders.notFilter(
FilterBuilders.rangeFilter("price").from("1").to("2"));
or filter
FilterBuilders.orFilter(
FilterBuilders.termFilter("name.second", "banon"),
FilterBuilders.termFilter("name.nick", "kimchy")
);
query filter
FilterBuilders.queryFilter(
QueryBuilders.queryString("this AND that OR thus")
);
range filter
FilterBuilders.rangeFilter("age")
.from("10")
.to("20")
.includeLower(true)
.includeUpper(false);
// A simplified form using gte, gt, lt or lte
FilterBuilders.rangeFilter("age")
.gte("10")
.lt("20");
t
term filter
FilterBuilders.termFilter("user", "kimchy");
t
terms filter
FilterBuilders.termsFilter("user", "kimchy", "elasticsearch")
.execution("plain"); // Optional, can be also "bool", "and" or "or"
// or "bool_nocache", "and_nocache" or "or_nocache"
cache
默认情况下,一些过滤器缓存,一些不缓存缓存。 你可以有一个好的控制使用cache(boolean)
FilterBuilder filter=FilterBuilders.andFilter(
FilterBuilders.rangeFilter("postDate").from("2010-03-01").to("2010-04-01"),
FilterBuilders.prefixFilter("name.second", "ba")
)
.cache(true);
和REST query dsl一样,elasticsearch提供了一个完整的Java query dsl。 工厂过滤器建造者是
FilterBuilders
一旦准备好您的查询,就可以使用query api。如何构建查询?使用
FilterBuilders,
导入它们在你的类:import org.elasticsearch.index.query.FilterBuilders.*;
请注意,在
FilterBuilder
对象上可以轻松地打印(又名调试) 查询生成的JSON,用 toString()
方法。 下面选取了几个常用的filer:
andfilter
FilterBuilders.andFilter(
FilterBuilders.rangeFilter("postDate").from("2010-03-01").to("2010-04-01"),
FilterBuilders.prefixFilter("name.second", "ba")
);
注意,您可以缓存结果,用
AndFilterBuilder#cache(boolean)
method方法。bool filter
FilterBuilders.boolFilter()
.must(FilterBuilders.termFilter("tag", "wow"))
.mustNot(FilterBuilders.rangeFilter("age").from("10").to("20"))
.should(FilterBuilders.termFilter("tag", "sometag"))
.should(FilterBuilders.termFilter("tag", "sometagtag"));
用
BoolFilterBuilder#cache(boolean)
method缓存结果exists filter
FilterBuilders.existsFilter("user");
matchall filter
FilterBuilders.matchAllFilter();
notfilter
FilterBuilders.notFilter(
FilterBuilders.rangeFilter("price").from("1").to("2"));
or filter
FilterBuilders.orFilter(
FilterBuilders.termFilter("name.second", "banon"),
FilterBuilders.termFilter("name.nick", "kimchy")
);
用
OrFilterBuilder#cache(boolean)
method缓存结果query filter
FilterBuilders.queryFilter(
QueryBuilders.queryString("this AND that OR thus")
);
用
QueryFilterBuilder#cache(boolean)
method缓存结果range filter
FilterBuilders.rangeFilter("age")
.from("10")
.to("20")
.includeLower(true)
.includeUpper(false);
// A simplified form using gte, gt, lt or lte
FilterBuilders.rangeFilter("age")
.gte("10")
.lt("20");
用
RangeFilterBuilder#cache(boolean)
method 缓存结果t
term filter
FilterBuilders.termFilter("user", "kimchy");
你可以使用
TermFilterBuilder#cache(boolean)
method来不适用缓存.t
terms filter
FilterBuilders.termsFilter("user", "kimchy", "elasticsearch")
.execution("plain"); // Optional, can be also "bool", "and" or "or"
// or "bool_nocache", "and_nocache" or "or_nocache"
你可以不使用缓存,用
TermsFilterBuilder#cache(boolean)
methodcache
默认情况下,一些过滤器缓存,一些不缓存缓存。 你可以有一个好的控制使用cache(boolean)
方法时存在。 例如:FilterBuilder filter=FilterBuilders.andFilter(
FilterBuilders.rangeFilter("postDate").from("2010-03-01").to("2010-04-01"),
FilterBuilders.prefixFilter("name.second", "ba")
)
.cache(true);
0 0
- Elasticsearch的javaAPI之Query DSL-filters
- Elasticsearch的javaAPI之query dsl-queries
- elasticsearch的javaAPI之query
- Elasticsearch的DSL之query and filter
- ElasticSearch的 Query DSL 和 Filter DSL
- ElasticSearch的 Query DSL 和 Filter DSL
- Elasticsearch的javaAPI之facet,count,delete by query
- elasticsearch:Query DSL
- Elasticsearch 5.4 Query DSL
- Query DSL for elasticsearch Query
- ElasticSearch的javaAPI之Client
- elasticsearch的javaAPI之index
- Elasticsearch的javaAPI之percolator
- Elasticsearch——Query DSL
- Elasticsearch DSL中Query与Filter的区别
- Elasticsearch DSL中Query与Filter的不同
- Elasticsearch DSL中Query与Filter的不同
- Elasticsearch DSL中Query与Filter的不同
- HDU - 5110(递推)
- 【HDU】5110 Alexandra and COS 分块处理
- 人人都会OSGI--实例讲解OSGI开发
- python 2.x转换成python 3.x
- 日语学习之沪江N4基础 20141123 -6
- Elasticsearch的javaAPI之Query DSL-filters
- 第13周项目1-数组大折腾(2)
- cocos2d-js 3.0 单选按钮
- 我爱我家
- 第13周项目5-字符串操作(1)-字母A
- BZOJ系列2463《 [中山市选2009]谁能赢呢?》题解
- include,require路径问题
- 访问超过1w。。。。。
- 我爱我家