题记 草稿记录法
通过TransportClient得到 client 客户端
SearchRequestBuilder searchrequestbuilder = clinet.prepareSearch(indexName);
构造查询query
主要是通过QueryBuilders 类进行获取query
eg:
1,简单查询
MatchQueryBuilder matchquery = QueryBuilders.matchQuery("fieldName","输入值"); 获取关键字查询单个字段的query
//MatchQueryBuilder query1 = QueryBuilders.matchQuery("brandCode", "1266"); 查询brandCode 值为1266的query
2,复杂查询:
BoolQueryBuilder booleanQuery = QueryBuilders.boolQuery();
booleanQuery.should(query1); 或的关系
booleanQuery.must(query2); 与的关系
3,范围查询
RangeQueryBuilder timeQuery = QueryBuilders.rangeQuery("fieldName").gte(“输入值1”).lte("输入值2");
查询fieldName 在 范围 : 输入值1<=fieldName<=输入值2
可对 数字 、价格、时间等有范围的进行使用。
4,设置查询query 与 设置查询分页
searchRequestBuilder .setFrom(size) //从size开始
.setSize(size2) //取size2条数据
.setQuery(booleanQuery) //设置查询query
.get();
5,得到结果
SearchResponse response
SearchHits hits = response.getHits();
hits.getTotalHits();获取到查询总数
hit.getSourceAsMap(); 得到结果
-------------------------------------------------------------es的json语法-------------------------------------------------------------------------------
查询所有文档
GET xiu/selection/_search
{
"query": {
"match_all": {}
}
}
单个字段查询
GET xiu/selection/_search
{
"query": {
"match": {
"brandCode": "IT0051"
}
}
}
多个字段进行查询
GET xiu/selection/_search
{
"query": {
"multi_match": {
"query": "IT0389",
"fields": ["brandCode","brandChName"]
}
}
}
指定返回值 _source=taxFreePrice
GET xiu/selection/_search?_source=taxFreePrice
{
"query": {
"term": {
"brandCode": {
"value": "IT0389"
}
}
}
}
区间范围查询
GET xiu/selection/_search
{
"query": {
"range": {
"createTime": {
"format": "yyyy-MM-dd HH:mm:ss",
"gte": "2017-05-10 00:00:00",
"lte": "2017-09-10 00:00:00"
}
}
}
}
复杂查询
curl -XGET "http://localhost:9200/xiu/selection/_search?_source=brandCode,onsaleState" -H 'Content-Type: application/json' -d'
{
"query": {
"bool": {
"must": [
{
"bool": {
"should": [
{
"match": {
"brandCode": {
"query": "IT0089",
"operator": "OR",
"prefix_length": 0,
"max_expansions": 50,
"fuzzy_transpositions": true,
"lenient": false,
"zero_terms_query": "NONE",
"boost": 1
}
}
},
{
"match": {
"brandCode": {
"query": "IT0927",
"operator": "OR",
"prefix_length": 0,
"max_expansions": 50,
"fuzzy_transpositions": true,
"lenient": false,
"zero_terms_query": "NONE",
"boost": 1
}
}
}
],
"disable_coord": false,
"adjust_pure_negative": true,
"boost": 1
}
},
{
"match": {
"onsaleState": {
"query": 1,
"operator": "OR",
"prefix_length": 0,
"max_expansions": 50,
"fuzzy_transpositions": true,
"lenient": false,
"zero_terms_query": "NONE",
"boost": 1
}
}
}
]
}
}
}'