C# poco实体的弹性搜索
我有poco实体,每个父实体都有自己的子外键数据,如FK_所有者_用户C# poco实体的弹性搜索,c#,entity-framework,elasticsearch,C#,Entity Framework,elasticsearch,我有poco实体,每个父实体都有自己的子外键数据,如FK_所有者_用户 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; } } 当我使用dbco
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();
public ElasticClient ElasticClient
{
得到
{
var node=新Uri(“http://localhost:9200");
var设置=新连接设置(
节点,
defaultIndex:“索引名称”
);
var客户端=新的ElasticClient(设置);
返回客户;
}
}
DBContext DBContext=new DBContext();
List listings=dbContext.listings.Where(l=>l.Status==1).Take(10.ToList();
foreach(清单中的var清单)
{
ElasticClient.Index(列表)
}
var results=ElasticClient.Search(body=>
body.Query(Query=>
QueryString(qs=>qs.query(productListRequestModel.SearchKey));
返回results.Documents.ToList();
但是我看到外键是空的。我的问题是,当我将poco实体添加到弹性客户端索引时,如何填充外键数据
提前谢谢
Unal要查找相同类型的所有文档,可以执行以下操作:
var listingResult2 = client.Search<Listing>(s => s.AllIndices());
var listingResult = client.Search<Listing>(sd => sd.Query(q => q.Term(l => l.Status, "1")));
有两个问题:您确定您的列表对象来自DB的用户实例吗?您在查询中使用的函数是什么?octavioccl否我不确定我现在是否正在检查。第二个答案是我不明白你的问题。我在哪里使用Func?非常感谢这:productListRequestModel。SearchKey@octavioccl列出对象时,用户实例来自DB,但当我索引时,它会变为null:/Hi@octavioccl,谢谢,但它对我不起作用。列表中的Still User对象为null.ravel,在我的例子中它可以工作,您使用的是哪个版本的elasticsearch,以及哪个版本的NEST?