Elasticsearch QueryBuilder并非总是存在所有字段

时间:2017-10-08 18:00:55

标签: elasticsearch

我尝试使用QueryBuilder,但我遇到的问题并不总是需要。

.setQuery(QueryBuilders.boolQuery()
                    .must(termQuery("country", countryName))
                    .must(termQuery("Region", regionName))
                    .must(termQuery("City", city))
                    .must(rangeQuery("persons").from(persons))
                    .get();

在上面的示例中,可能并不总是需要城市,但如果我将其留空,则会搜索空城。这仅适用于城市,但我希望以后会有10个以上的字段。 我可以以某种方式有条件地向构建器添加内容,还是有另一种智能方式?

1 个答案:

答案 0 :(得分:0)

您可以构建"message": "startup failed:\nScript88.groovy: 1: illegal string body character after dollar sign;\n solution: either escape a literal dollar sign \"\\$5\" or bracket the value expression \"${5}\" @ line 1, column 228.\n elf_reg_ind\",\"2\",\"self_reg_pw\",\"$2a$10$J\n ^\n\n1 error\n", "Exception-Class": "org.codehaus.groovy.control.MultipleCompilationErrorsException" ,然后将其传递给搜索请求。在构建期间,您可以有条件地将您的语句添加到查询中。它看起来像这样

query