Es基本语法

相当于mysql in操作

Set set = new HashSet<String>();
set.add("3503027400038206");
set.add("3503227700038105");
BoolQueryBuilder boolQuery = QueryBuilders.boolQuery();
boolQuery.must(QueryBuilders.termsQuery("pt_number", set));

ES新建type

url: my.spider.test/myDocumentest/_mapping
method: put
body:
{
“properties”: {
“myVoiceId”: {
“type”: “long”
},
“myVoiceStatus”: {
“type”: “long”
},
“name”: {
“type”: “string”,
“index”: “not_analyzed”
},
“content”: {
“type”: “string”,
“index”: “ik”
},
“excelVoiceId”: {
“type”: “long”,
“index”: “not_analyzed”
}
}
}

注意:
1、指定字段为ik切词解析,那么可以利用fuzzyQuery,分词查询,es不会对查询条件做切词,需要查询前手工切词。

if(StringUtils.isNotBlank(queryDto.getSearchKeyword())){
            final BoolQueryBuilder query = QueryBuilders.boolQuery();
            List<String> keyWords = KeyWordExtractUtil.stringToArray(queryDto.getSearchKeyword());
            for(String keyWord:keyWords){
                query.should(QueryBuilders.fuzzyQuery("title", keyWord));
                query.should(QueryBuilders.fuzzyQuery("content",  keyWord));
   
            }
            esQueryUtil.getQueryBuilder().must(query);
        }

2、type的命名不要带点符号,否则,es-head查询点时候,会作为可以查询在这里插入图片描述

ES新增字段

my.spider.test/_mapping/myDocumentest
method: put
{
“properties”: {
“treePathId”: {
“index”: “not_analyzed”,
“type”: “string”
},
“trainer”: {
“index”: “not_analyzed”,
“type”: “string”
}
}
}

ES新增嵌套字段

{
“properties”: {
“labels06”: {
“type”: “nested”,
“properties”: {
“id”: {
“type”: “long”
},
“name”: {
“index”:“not_analyzed”,
“type”: “text”
}
}
}
}
}

基本用法

https://www.cnblogs.com/shoufeng/p/11103913.html

head嵌套查询

URL:my.spider.user/user_document/_search
方式:post
查询JSON:
{
“query”: {
“bool”: {
“must”: [
{
“nested”: {
“path”: “addressList”,
“query”: {
“match”: {
“addressList.cityId”: “366”
}
}
}
}
]
}
}
}

嵌套查询:


{
  "query": {
    "nested": {
      "path": "channelDoc.channelManagers",
      "query": {
        "bool": {
          "must": [
            {
              "match": {
                "channelDoc.channelManagers.managerType": "3"
              }
            },
            {
              "match": {
                "channelDoc.channelManagers.userId": 28
              }
            }
          ]
        }
      }
    }
  }
}

// 根据创建结束时间,获取查询条件
public static BoolQueryBuilder getQueryBuilderByCreatedEndAndMinCommonVoiceId(Long createdAtEnd) {
        BoolQueryBuilder queryBuilder = QueryBuilders.boolQuery();
        queryBuilder.must(QueryBuilders.termQuery("name", "张三"));
        queryBuilder.filter(QueryBuilders.rangeQuery("createdAt").lt(createdAtEnd));
        return queryBuilder;
    }

根据userId和publishTime时间范围同时查询

GET: myIdex/_search

{
  "query": {
    "bool": {
      "must": {
        "term": {
          "userId": 431131
        }
      },
      "filter": {
        "range": {
          "publishTime": {
           	"gt": 1656675419122,
          	"lt": 1660304219122
          }
        }
      }
    }
  }
}

多条件es查询

{
  "query": {
    "bool": {
      "must": [
        {
          "term": {
            "userId": "218362492"
          }
        },
        {
          "term": {
            "messageId": "19912413340049"
          }
        },
        {
          "term": {
            "mid": "11521fbaf9f04251a343d1ff0468b294"
          }
        }
      ]
    }
  }
}

版权声明:本文为NOAH_123456原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。