我有poco实体,每个父实体都有自己的子外键数据,如FK_Owner_User。
public class Listing
{
public int Id{ get; set; }
public int Status { get; set; }
public string Title { get; set; }
public string Description { get; set; }
public virtual User FK_Owner_User{ get; set; }
}
当我使用dbcontext获取父类时,我将其添加到弹性搜索索引
public ElasticClient ElasticClient
{
get
{
var node = new Uri("http://localhost:9200");
var settings = new ConnectionSettings(
node,
defaultIndex: "index_name"
);
var client = new ElasticClient(settings);
return client;
}
}
DBContext dbContext = new DBContext();
List<Listing> listings = dbContext.Listings.Where(l => l.Status == 1).Take(10).ToList();
foreach (var listing in listings)
{
ElasticClient.Index(listing)
}
var results = ElasticClient.Search<Listing>(body =>
body.Query(query =>
query.QueryString(qs => qs.Query(productListRequestModel.SearchKey))));
return results.Documents.ToList();
但是我看到外键是null。我的问题是当我将poco实体添加到弹性客户端索引时,如何填充外键数据?
提前致谢。
ÜNAL
答案 0 :(得分:0)
要查找相同类型的所有文档,您可以执行此操作:
var listingResult2 = client.Search<Listing>(s => s.AllIndices());
退回的文件应与其用户一起提供。
如果要根据属性的值过滤文档,例如,状态为1的所有Listing
文档,则可以执行以下操作:
var listingResult = client.Search<Listing>(sd => sd.Query(q => q.Term(l => l.Status, "1")));