【发布时间】:2019-06-04 08:05:34
【问题描述】:
我是 ElasticSearch 的新手。现在我有一个要求,需要返回包含关键字的所有结果。
public Class People(){
public string UserId {get; set;}
public string FirstName {get; set;}
public string LastName {get; set;}
}
如果三个字段之一包含关键字,我想过滤所有人物,类似于 like "%keyword%"。
例如,我有一个人
var people = new People() {
UserId = "lastname.middlename.firstname",
FirstName = "firstname",
LastName = "lastname"
}
我如何通过搜索关键字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)))
);
这行不通。仅当我将关键字更改为 firstname 或 lastname 或 lastname.middlename.firstname
时才有效有什么方法可以满足要求吗?
【问题讨论】:
标签: elasticsearch nest