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服务器版本兼容。