1

目前,我的 Elasticsearch 服务在版本 7.4.0 上运行,而我的 C# Windows 窗体应用程序使用的是 Elasticsearch.Net 版本 7.3.1。

我注意到我可以通过设置 NumberOfFragments 来设置从突出显示返回的最大结果数,默认情况下为 5。但是,当我设置以下内容时,我无法获得返回五个以上结果的完成/建议:

                    var tRes = client.Search<Words>(s => s
                        .SuggestSize(20) // How many suggestions to return in response
                        .Suggest(su => su
                        .Completion("name", cs => cs
                                .SkipDuplicates(true)
                                .Field(f => f.Suggest)
                                .Prefix(tbInput.Text)
                                .Regex("*")
                                .Size(20))
                        )

执行上述查询时,我收到以下错误消息。

{"The remote server returned an error: (400) Bad Request.. Call: Status code 400 from: POST /docproperty/_search?typed_keys=true&suggest_size=20. ServerError: Type: illegal_argument_exception Reason: \"request [/docproperty/_search] contains unrecognized parameter: [suggest_size] -> did you mean [suggest_field]?\""}

更新

通过添加以下内容,我设法获得了 5 个以上的结果:

                    var tRes = client.Search<Words>(s => s
                        .Size(20)
                        .Suggest(su => su
                        .Completion("name", cs => cs
                                .SkipDuplicates(true)
                                .Field(f => f.Suggest)
                                .Prefix(tbInput.Text)
                                .Regex("*")
                                .Size(20))
                                .Term("", t=>t.ShardSize(20).Field(f=>f.Suggest).Text(tbInput.Text))
                        )
                    );

但是,这一次我注意到我无法完成以返回在执行 MatchPhrase 时可以找到的单词(很多缺失的单词)。

4

1 回答 1

1

我认为如果您查看文档,我认为这并不意味着建议大小。我认为它应该只是大小..不确定这是否支持链接。

https://www.elastic.co/guide/en/elasticsearch/reference/current/search-suggesters.html

于 2019-12-23T09:56:47.500 回答