使用Elasticsearchs NEST查询匹配查找带有连字符的拼写错误的单词

时间:2019-04-14 11:37:47

标签: c# elasticsearch asp.net-core full-text-search nest

Elasticsearch与NEST客户端可以正常工作。但是我想进行一次宽容的搜索,同时查找拼写错误和替代的写作风格。这以某种方式起作用。假设我有一个标题如下的文档:Windows 10 Update Causing System Slowdowns

发现它有windoows甚至windoowws等错字。但是slow-downs不匹配,slowdowns匹配。我不确定这是否是由搜索运算符引起的,因此将slow-downs解释为在没有slow的情况下搜索downs或为何不起作用。

我的搜索是这样完成的:

var resp = client.Search<ArticleModel>(a => a
                  .From(0)
                  .Size(count)
                  .Query(q =>
                    q.Match(c => c
                        .Field(f => f.Title)
                        .Analyzer("standard")
                        .Fuzziness(Fuzziness.Auto)
                        .MinimumShouldMatch(1)
                        .FuzzyRewrite(MultiTermQueryRewrite.TopTermsBlendedFreqs(10))
                        .Query(query)
                    )
                  )
            );

其中query是类似于slow-downs的搜索词。

class ArticleModel {
        [Text]
        public string Title { get; set; }
}

使用撰写6.6.0时的最新NEST版本。 Elasticsearch在带有6.7.1标签的docker上运行。根据{{​​3}},6.x客户端也应该与6.x服务器版本兼容。

0 个答案:

没有答案