0

我正在升级到 Nest 2(elasticsearch 1.x 到 2.3),但请注意 FuzzyMinimumSimilarity 和 OnFieldsWithBoost 已消失的重大更改。我应该如何将下面的代码替换为 Nest v2?

new SearchDescriptor<T>().Type(searchTypes).Query(q =>q.QueryString(qs => qs.Query(fuzzy).FuzzyMinimumSimilarity(0.7)));

而对于FuzzyMaxExpansions(0.7)

4

1 回答 1

1

以下是NEST 2.x 中可用于查询的模糊选项query_string(使用最新的 2.5.8)

var client = new ElasticClient();

var searchResponse = client.Search<MyDocument>(s => s
    .Query(q => q
        .QueryString(qs =>qs
            .Fields(f => f
                .Field(ff => ff.Name, 3)
                .Field(ff => ff.Content, 0.5)
            )
            .Query("fuzzy")
            .Fuzziness(Fuzziness.EditDistance(3))
            .FuzzyMaxExpansions(2)
            .FuzzyPrefixLength(4)
            .FuzzyRewrite(MultiTermQueryRewrite.TopTerms(3))
        )
    )
);

产生

{
  "query": {
    "query_string": {
      "query": "fuzzy",
      "fuzzy_max_expansions": 2,
      "fuzziness": 3,
      "fuzzy_prefix_length": 4,
      "fields": [
        "name^3",
        "content^0.5"
      ],
      "fuzzy_rewrite": "top_terms_3"
    }
  }
}

另请查看发布博客文章1.x 和 2.x文档之间的重大更改

于 2019-02-27T23:20:03.320 回答