“ fuzzy”在“ query_string”查询中不起作用

我有一个要求用户传递一个针对Elasticsearch搜索的字符串(5.6,无法更新)。该字符串可以是简单的“ michael”或“ firstName:Michael”。我希望能够提供一个标志来使查询变得模糊。因此,我不想使用模糊运算符“〜”,而是想使用此处定义的“ fuzzy”参数:query_string(搜索“ fuzzy”,“ fuzzy_prefix_length”)

但是这不起作用:

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

即使这样做:

  

GET *人/ _搜索   {     “查询”:{       “模糊”:{         “ _all”:{          “ value”:“ micheal”,          “模糊性”: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);
}
yx118226 回答:“ fuzzy”在“ query_string”查询中不起作用

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3142611.html

大家都在问