Я пытаюсь реализовать упругий поиск для моего приложения Grails. Я использую версию Grails 3.3.6, упаковщик Gradle 3.1, плагин Grailsasticsearch 2.4.0 и версию эластичного поиска 5.4.1.
Я изо всех сил пытаюсь передать параметр метода поиска в классе эластичного поиска.
"asticsearchservice.search (запрос на закрытие, параметры, фильтр) "
Я передаю такой параметр и получаю ошибку на
1010 * спичка *
elasticSearchService.search({match(fields: ["title", "description"],
query: q,fuzziness:'4',fuzzy_prefix_length:1)}, null,[indices: Book, types: Book, score: true])
На самом деле, здесь я пытаюсь использовать совпадение с нечеткостью, я пытался с помощью kibana и почтальона _search, используя эластичный поиск. Там работает.
POST /books/code/_search
{
"query": {
"match": {
"author": {
"query": "keeen",
"fuzziness": 4,
"prefix_length": 1
}
}
}
}
Мне нужна такая же структура для моего запроса, сгенерированного приложением, в консоли. Но мое приложение сгенерировало структуру запросов в консоли
"query" : {
"query_string" : {
"query" : "grails",
"fields" : [ ],
"use_dis_max" : true,
"tie_breaker" : 0.0,
"default_operator" : "and",
"auto_generate_phrase_queries" : false,
"max_determinized_states" : 10000,
"enable_position_increments" : true,
"fuzziness" : "AUTO",
"fuzzy_prefix_length" : 0,
"fuzzy_max_expansions" : 50,
"phrase_slop" : 0,
"escape" : false,
"split_on_whitespace" : true,
"boost" : 1.0
}
}
Как я получу свой ожидаемый запрос там? Любая идея - Может кто-нибудь, пожалуйста, помогите мне?
Заранее спасибо.