1. 介绍
通过表达式构建ES查询条件.
前端效果展示图
项目代码
2. 测试代码
public class ConditionTest {
public static void main(String[] args) {
String source1 = "{\"logic\":\"MUST\",\"expressionEntities\":[{\"f1\":\"User_Type\",\"f2\":\"TERM\",\"f3\":\"00\"},{\"f1\":\"User_ID\",\"f2\":\"TERM\",\"f3\":\"123456\"}]}";
String source2 = "{\"logic\":\"MUST\",\"expressionEntities\":[{\"logic\":\"SHOULD\",\"expressionEntities\":[{\"f1\":\"User_Type\",\"f2\":\"WILDCARD\",\"f3\":\"00\"},{\"f1\":\"User_ID\",\"f2\":\"TERM\",\"f3\":\"350321199612220717\"}]},{\"f1\":\"User_ID\",\"f2\":\"TERM\",\"f3\":\"350321199612220717\"}]}";
JSONObject sourceObject = JSON.parseObject(source2);
ConditionDTO dto = new ConditionDTO(
null,
null,
null,
0,
10,
DateUtil.parseDate("2020-10-01 00:00:00"),
DateUtil.parseDate("2020-10-28 00:00:00"),
sourceObject
);
System.out.println(dto.getSearchSourceBuilder());
// System.out.println(dto.getQueryBuilder());
}
}
3 测试输入和效果
input1
{
"expressionEntities": [
{
"f1": "User_Type",
"f2": "TERM",
"f3": "00"
},
{
"f1": "User_ID",
"f2": "TERM",
"f3": "123456"
}
],
"logic": "MUST"
}
output1
{
"from": 0,
"size": 10,
"query": {
"bool": {
"must": [
{
"term": {
"User_Type": {
"value": "00",
"boost": 1.0
}
}
},
{
"term": {
"User_ID": {
"value": "123456",
"boost": 1.0
}
}
},
{
"range": {
"Operate_Time": {
"from": 1601481600000,
"to": 1603814400000,
"include_lower": true,
"include_upper": true,
"boost": 1.0
}
}
}
],
"adjust_pure_negative": true,
"boost": 1.0
}
},
"sort": [
{
"Operate_Time": {
"order": "desc"
}
}
]
}
input2
{
"logic": "MUST",
"expressionEntities": [
{
"logic": "SHOULD",
"expressionEntities": [
{
"f1": "User_Type",
"f2": "WILDCARD",
"f3": "00"
},
{
"f1": "User_ID",
"f2": "TERM",
"f3": "350321199612220717"
}
]
},
{
"f1": "User_ID",
"f2": "TERM",
"f3": "350321199612220717"
}
]
}
output2
{
"from": 0,
"size": 10,
"query": {
"bool": {
"must": [
{
"bool": {
"should": [
{
"wildcard": {
"User_Type": {
"wildcard": "00",
"boost": 1.0
}
}
},
{
"term": {
"User_ID": {
"value": "350321199612220717",
"boost": 1.0
}
}
}
],
"adjust_pure_negative": true,
"boost": 1.0
}
},
{
"term": {
"User_ID": {
"value": "350321199612220717",
"boost": 1.0
}
}
},
{
"range": {
"Operate_Time": {
"from": 1601481600000,
"to": 1603814400000,
"include_lower": true,
"include_upper": true,
"boost": 1.0
}
}
}
],
"adjust_pure_negative": true,
"boost": 1.0
}
},
"sort": [
{
"Operate_Time": {
"order": "desc"
}
}
]
}