使用查询字符串OnFieldWithBoosts添加了不同的字段需要应用过滤器,字符串字段记录工作正常。
对于包含 .Add(id,2)的ID字段,它不会返回基于ID的结果。
现在在查询部分, 我使用了OR条件,所以当第一个条件满足时,它不会检查第二个条件。 如果我使用AND条件,那么它会检查条件匹配。
但我需要先将查询结果和第二个查询结果连成一个结果
CODE:
var result = client.Search<dynamic>(q => q
.Indices("test")
.Types("user")
.From(1)
.Size(10)
.MinScore(1.0)
.Fields("id", "createddate", "email", "modifieddate", "name", "companyname") // Result set Fields Fields
.Query(q1 =>
{
qq = (q1.ConstantScore(a => a.Filter(b => b.Term("id", searchKeyword))))
|| q1.QueryString(qs => qs.Query(searchKeyword).OnFieldsWithBoost(a => a.Add("notes",3).Add("email", 2).Add("name", 2)));
return qq;
})
);