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; }
}
Используется последняя версия NEST на момент написания 6.6.0
.Elasticsearch запускается в докере с тегом 6.7.1
.Согласно документам , клиент 6.x также должен быть совместим с версиями сервера 6.x.