Я пытаюсь сгенерировать запрос, используя Java RestHighLevelClient из Elasticsearch, подобный следующему:
GET /field_search/_search
{
"query": {
"bool": {
"must": [
{
"match": {
"ENTRY_ID": "ttttt"
}
},
{
"match": {
"MODULE_ID": "xxxxx"
}
},
{
"match": {
"COMPANY_ID": "22244"
}
},
{
"match": {
"DELETED": false
}
}
]
}
}
}
Это мой код, который я использую для его генерации
BoolQueryBuilder boolQueryBuilder1 = new BoolQueryBuilder();
boolQueryBuilder1.must().add(QueryBuilders.matchQuery("MODULE_ID", moduleId));
boolQueryBuilder1.must().add(QueryBuilders.matchQuery("COMPANY_ID", companyId));
........
Iпропустили какую-то его часть, чтобы она была маленькой.Но я использую BoolQueryBuilder и запрос, который он генерирует, выглядит примерно так:
{
"query": {
"bool" : {
"must" : [
{
"match" : {
"MODULE_ID" : {
"query" : "xxxxx",
"operator" : "OR",
"prefix_length" : 0,
"max_expansions" : 50,
"fuzzy_transpositions" : false,
"lenient" : false,
"zero_terms_query" : "NONE",
"auto_generate_synonyms_phrase_query" : false,
"boost" : 1.0
}
}
},
{
"match" : {
"COMPANY_ID" : {
"query" : "22244",
"operator" : "OR",
"prefix_length" : 0,
"max_expansions" : 50,
"fuzzy_transpositions" : false,
"lenient" : false,
"zero_terms_query" : "NONE",
"auto_generate_synonyms_phrase_query" : false,
"boost" : 1.0
}
}
},
{
"match" : {
"DELETED" : {
"query" : false,
"operator" : "OR",
"prefix_length" : 0,
"max_expansions" : 50,
"fuzzy_transpositions" : false,
"lenient" : false,
"zero_terms_query" : "NONE",
"auto_generate_synonyms_phrase_query" : false,
"boost" : 1.0
}
}
},
{
"match" : {
"ENTRY_ID" : {
"query" : ttttt,
"operator" : "OR",
"prefix_length" : 0,
"max_expansions" : 50,
"fuzzy_transpositions" : false,
"lenient" : false,
"zero_terms_query" : "NONE",
"auto_generate_synonyms_phrase_query" : false,
"boost" : 1.0
}
}
}
],
"adjust_pure_negative" : true,
"boost" : 1.0
}
}
}
Он добавляет в запрос дополнительные вещи.При использовании вышеупомянутого обычного запроса мои результаты возвращаются правильно, но с запросом, сгенерированным Java, мои результаты отсутствуют, как я могу построить тот же запрос, используя клиент Java?