«нечеткий» не работает в запросе «query_string» - PullRequest
0 голосов
/ 07 ноября 2019

У меня есть требование, чтобы пользователь передавал строку, в которой выполняется поиск по атрибутуasticsearch (5.6, не удается обновить). Строка может быть простой «michael» или «firstName: Michael». Я хочу иметь возможность предоставить флаг, чтобы сделать запрос нечетким. По этой причине я НЕ хочу использовать нечеткий оператор «~», но вместо этого хочу использовать «нечеткие» параметры, как определено здесь: query_string (поиск «нечеткий», «fuzzy_prefix_length»)

Однако это не работает:

POST *person/_search
{
  "query": {
    "query_string": {
    "query": "micheal",
    "fuzziness": 2,
    "fuzzy_max_expansions": 50,
    "fuzzy_prefix_length": 2
  }
 } 
}

Даже если это так:

GET * person / _search {"query": {"fuzzy": {"_all": {" value ":" micheal "," fuzziness ": 2," prefix_length ": 2," max_expansions ": 50}}}}

Я также попробовал следующее, что также делаетне работает:

QueryStringQueryBuilder queryStringQueryBuilder = new QueryStringQueryBuilder(submittedQuery);

if (elasticQuery.getFuzzy()) {
  queryStringQueryBuilder.fuzziness(Fuzziness.AUTO);
  queryStringQueryBuilder.fuzzyPrefixLength(3);
  queryStringQueryBuilder.fuzzyMaxExpansions(20);
}
...