Elasticsearch 2.1 - 不推荐的搜索类型

Rob*_*ger 5 elasticsearch nest

根据这一环节,既scancount已被弃用.

我正在尝试更改我的查询以反映这一点.因此,count更改很简单,只需删除搜索类型并添加size=0到请求中,但是,我不是100%scan更改.

目前我有这个查询:

var result = ElasticClient.Search<Product>(s => s
    .From(0)
    .Size(10)
    .SearchType(SearchType.Scan)
    .Scroll("4s")
    .Query
        (qu =>
            qu.Filtered
                (fil =>
                    fil.Filter
                        (f =>
                            f.Bool(b => b.Must(m => m.Term("filedName", "abc")))))));
Run Code Online (Sandbox Code Playgroud)

我的理解是正确的,我需要更改的是删除searchtype并添加一个sort?即:

var result = ElasticClient.Search<Product>(s => s
    .From(0)
    .Size(10)
    .Scroll("4s")
    .Sort(x => x.OnField("_doc"))
    .Query
        (qu =>
            qu.Filtered
                (fil =>
                    fil.Filter
                        (f => f.Bool(b => b.Must(m => m.Term("filedName", "abc")))))));
Run Code Online (Sandbox Code Playgroud)

我在SortSpecialField 这里看到了一个枚举,但我不确定如何在sort参数中实际使用它.

Dus*_*sty 5

您的理解是正确的,即排序依据的更改(当您在问题中记录时)_doc将替换已弃用的Scansearchtype.该SortSpecialField枚举只是排序由语法糖_doc.如果您更喜欢使用它,在NEST 2.0 [仅]中,您可以这样做:

ElasticClient.Search<Product>(s => s
.From(0)
.Size(10)
.Scroll("4s")
.Sort(x => x.Ascending(SortSpecialField.DocumentIndexOrder))
    ...
Run Code Online (Sandbox Code Playgroud)