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

时间:2019-11-07 17:48:16

标签: elasticsearch fuzzy-search

我有一个要求用户传递一个针对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);
}

0 个答案:

没有答案