【发布时间】:2019-11-15 08:53:59
【问题描述】:
我在 Elasticsearch 中设置了两个索引来存储不同类型的数据,我正在尝试同时从两个索引中使用嵌套获取搜索结果。我已经设置了如下模型...
public class Person
{
[Number(Name="person_id")]
public int Id { get; set; }
[Date(Name = "person_created")]
public DateTime Created { get; set; }
...
}
public class Work {
[Number(Name="work_id")]
public int Id { get; set; }
[Date(Name = "work_created")]
public DateTime Created { get; set; }
...
}
查询单个索引时,我可以执行以下操作并将结果映射回我的模型类型...
var request = new SearchRequest("works")
{
From = searchQuery.Offset,
Size = searchQuery.PageSize,
Query = new QueryStringQuery { Query = searchQuery.SearchTerm },
};
var result = _elasticClient.Search<Work>(request);
但是,当执行如下查询时,如何告诉 Nest 将结果映射到每个索引的类型?
var request = new SearchRequest("works,person")
{
...
}
var result = _elasticClient.Search<object> ...
我看到的其他答案建议执行以下操作,但我认为 Types 函数已在 NEST 7.0 中删除...
client.Search<object>(s => s
.Size(100)
.SearchType(SearchType.Count)
.Type(Types.Type(typeof(Dog), typeof(Cat)))
【问题讨论】:
标签: c# .net elasticsearch nest