Я новичок в ElasticSearch. Теперь у меня есть требование вернуть все результаты, содержащие ключевое слово.
public Class People(){
public string UserId {get; set;}
public string FirstName {get; set;}
public string LastName {get; set;}
}
Я хочу отфильтровать всех людей, если одно из трех полей содержит ключевое слово, подобное , например, "% keyword%" .
Например, у меня есть Люди
var people = new People() {
UserId = "lastname.middlename.firstname",
FirstName = "firstname",
LastName = "lastname"
}
Как я мог получить этот Peoplle, выполнив поиск по ключевому слову ddl , Как настроить индекс и как сделать запрос.
Я пытался сделать запрос с помощью NEST, как показано ниже
var keyword = "ddl"
var result = await _client.SearchAsync<People>(s =>
s.Query(q => q.MultiMatch(m => m.Fields(f => f.Field(ff => ff.UserId).Field(ff => ff.FirstName).Field(ff => ff.LastName)).Query(keyword)))
);
Это не сработает. Это работает, только когда я изменил ключевое слово на имя или фамилия или lastname.middlename.firstname
Есть ли способ удовлетворить требование?