我正在使用 NEST 强类型客户端在 C# 中使用 Elastic Search。我有一个包含条目的索引:
[ElasticType(Name = "Entry", IdProperty = "Id")]
public class Entry
{
public string Id { get; set; }
public string Title { get; set; }
public string Description { get; set; }
public string Award { get; set; }
public int Year { get; set; }
}
其中 Year 是参赛作品的年份,例如 2012 年,Award 是参赛作品获得的奖项类型,可以为空。
然后我想使用提升来搜索这些条目以获得不同的属性。在下面的代码中,我希望与标题匹配的结果排名高于与描述匹配的结果。
private IQueryResponse<Entry> GetMatchedEntries(string searchText)
{
return _elasticClient.Search<Entry>(
body =>
body.Query(q =>
q.QueryString(qs =>
qs.OnFieldsWithBoost(d =>
d.Add(entry => entry.Title, 5.0)
.Add(entry => entry.Description, 2.0))
.Query(searchText))));
}
我现在被要求提升获奖者的成绩,并提升新的参赛作品(即按年度)。
我该怎么做呢?它是作为索引服务的一部分还是作为搜索的一部分需要完成的?