Что является заменой FuzzyMinimumShoity в Nest 2, Elasticsearch 2.3? - PullRequest
0 голосов
/ 27 февраля 2019

Я обновляюсь до Nest 2 (asticsearch 1.x до 2.3), но обратите внимание на критические изменения, которые исчезли в FuzzyMinimumSimility и OnFieldsWithBoost.Как заменить приведенный ниже код на Nest v2?

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

И для FuzzyMaxExpansions(0.7)

Спасибо заранее!

1 Ответ

0 голосов
/ 28 февраля 2019

Вот опции нечеткости, доступные по запросу query_string в NEST 2.x (используйте последнюю версию 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 документация

...