Как создать QueryBuilder из JSON DSL при использовании Java API в ElasticSearch?
Я использую ElasticSearch в качестве службы поиска в веб-проекте Spring, который использует Transport Client для связи с ES.
Мне интересно, существует ли метод, который может создать QueryBuilder из JSON DSL. например, преобразуйте этот запрос DSL JSON bool в QueryBuilder.
{
"query" : {
"bool" : {
"must" : { "match" : {"content" : "quick"},
"should": { "match": {"content" : "lazy"}
}
}
}
Мне нужен этот метод, потому что я должен получить ввод строки bool пользователя из веб-интерфейса и проанализировать эту строку bool в QueryBuilder. Однако это не подходит для использованияQueryBuilders.boolQuery().must(matchQB).should(shouldQB).must_not(mustNotQB)
, Потому что нам может потребоваться несколько обязательных или необязательных запросов.
Если существует метод, который может создать QueryBuilder из JSON DSL или существуют альтернативные решения, это будет намного проще.
PS: Я нашел два метода, которые могут обернуть строку DSL в QueryBuilder для поиска ES. ОдинWrapperQueryBuilderподробности смотрите здесь.http://javadoc.kyubu.de/elasticsearch/HEAD/org/elasticsearch/index/query/WrapperQueryBuilder.html Еще одинQueryBuilders.wrapperQuery(Строка DSL).