KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I am using Elastic Search in C# using the NEST strongly typed client. I have an index containing Entries: [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; } } Where Year is the year of the entry, eg 2012, and Award is the type of Award the Entry won, which can be null. I then want to search these Entries using boosting for different properties. In the following code, I want results to be ranked higher that match on the Title, than those that match on the Description. 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)))); } I have now been asked to Boost the results by those which have won Awards, and also Boost newer Entries (ie by the Year). How do I do this? Is it something that needs to be done as part of the indexing service, or as part of the search?
Tags (comma-separated)
Save Edits
Cancel