0
我在使用NEST客户端进行源过滤时遇到问题。NEST过滤源并使用对象构造函数创建对象的实例
这是我的代码示例:
var searchRequest = client.Search<Report>(analysisDescriptor
.Source(s => s
.Includes(i => i
.Fields(
f => f.ReportId,
f => f.Abstract,
f => f.Title
)
)
)
.Size(10));
哪里analysisDescriptor
是new SearchDescriptor<Report>()
与文本搜索业务逻辑。
这是我的类的构造函数:
public class Report
{
public Report(int reportId, string itemAbstract, string title)
{
Abstract = itemAbstract;
ReportId = reportId;
Title = title;
/* Other fields */
}
public int ReportId { get; }
public string Abstract { get; }
public string Title { get; }
/* Other fields */
}
现在的问题是,技术负责不希望有set
性质,并希望有一个构造函数来代替。
上面的代码几乎作品:
- ReportId分配
- 标题分配
的问题是,Abstract
场不分配,因为构造函数有它宣布为itemAbstract
。这已完成,因为abstract
是C#中的保留关键字。如果我将构造函数中的字段名称更改为@abstract
- 这可行,但似乎不正确,因为我必须使用保留关键字。
将Abstract
更改为ItemAbstract
似乎不是一种选择,因为我们在数据库中拥有它,并且需要更多的更改。
所以理想情况下,我正在寻找一种方法将我的searchRequest
中的Abstract
字段传递给Report
的构造函数,作为itemAbstract
。希望这是有道理的。
我接受任何其他解决方案的清洁和有意义。
工作就像一个魅力! –