我试图通过 NEST .Net api 使用 Elastic Search 弄脏我的手,并遇到了几个问题。我怀疑我误解了某些东西,或者我的文档建模不正确,但希望能得到一些帮助。
我有一个包含集合的文档。下面是一个类似的老生常谈的例子:
public class Company
{
public DateTime RegisteredOn {get;set;}
public string Name {get;set;}
[ElasticProperty(Type = FieldType.nested)]
public List<Employee> Employees {get;set;}
}
public class Employee
{
public string FirstName {get;set;}
public string LastName {get;set;}
[ElasticProperty(Type = FieldType.nested)]
public List<SalesFigure> SalesFigures {get;set}
}
public class SaleFigure
{
public int AverageMonthlySaleValue {get;set;}
public int AverageVolumeSold {get;set;}
}
我在层次结构的每个级别和索引调用之前创建了一个索引,其中包含一些数据client.MapFromAttributes<Company>();
以下工作,但我想了解如何找到所有员工的名字为 Bob 的公司,或者找到所有员工的平均 AverageMonthlySaleValue > $1100 的公司
client.Search<Company>(query => query.Index("companies").Type("company")
.From(0)
.Size(100)
.Filter(x => x.Term(n => n.Name, "Microsoft")));
有人建议使用嵌套查询/过滤器,因为有人建议我应该展平我可以做的文档,但我正在尝试创建一个更好地代表真实域的模型,所以我陷入了困境。
同样,我知道在某些时候我还必须使用构面,因此希望正确构建所有内容以支持这一点。
谢谢蒂姆