【发布时间】:2021-02-10 18:41:25
【问题描述】:
我有一个 POCO FooIndex 映射到 elasticsearch 中的索引,我想对该索引执行查询并仅返回特定字段。我创建了一个 DTO FooStatus,它只包含我要返回的字段的属性。
如果 DTO 中的属性名称与索引映射中的名称匹配,这可以正常工作,正如预期的那样,但我希望某些属性具有不同的名称并将它们映射到索引字段。我该怎么做?
var searchDescriptor = new SearchDescriptor<FooIndex>()
.Index(index)
.Source(sf => sf
.Includes(i => i
.Fields(
f => f.FooId,
f => f.FirstName,
f => f.LastName,
f => f.PrimaryEmail,
f => f.UpdatedDate,
f => f.Statuses)))
.Query(q => q
.Bool(b => b
.Filter(f => f
.Terms(t => t
.Field(p => p.Statuses.Select(
x => x.blahId))
.Terms(reqIds)))));
var results = await _elasticClient.SearchAsync<FooStatus>(searchDescriptor);
return results.Documents;
public class FooStatus
{
public string FooId { get; set; }
public string FirstName {get; set;}
public string LastName {get; set; }
public string Email {get; set;} // Map this from FooIndex.PrimaryEmail
public DateTime? DateModified {get; set; } // Map this from FooIndex.UpdatedDate
public List<FooStatus> Statuses { get; set; }
}
【问题讨论】:
标签: c# .net elasticsearch nest