public virtual ISearchResponse <Deal> SearchInElastic(string searchTerm, string userLanguageID) { int potentialFriendlyID; int.TryParse(searchTerm, out potentialFriendlyID); ISearchResponse <Deal> response = _lyoEsClient.Search <Deal>(s => s .Index(IndexConfig.GetIndexName <Deal>()) .From(0) .Size(10) .Query(q => q .Bool(b => b .Should( o => o.Term(t => t.Field(p => p.FriendlyID).Value(potentialFriendlyID).Boost(2)), o => o.Match(m => m.Field(p => p.DealerID).Query(searchTerm)), // o => o.Match(m => m.Field(p => p.Name).Query(searchTerm)) o => o.MatchPhrasePrefix(m => m.Field(p => p.Name).Query(searchTerm).MaxExpansions(50)) ) ))); return(response); }
public virtual ISearchResponse <Document.DealerSearchEntry.DealerSearchEntry> SearchInElastic(string searchTerm, string userLanguageID) { int potentialDealerNumber; int.TryParse(searchTerm, out potentialDealerNumber); ISearchResponse <Document.DealerSearchEntry.DealerSearchEntry> response = _lyoEsClient.Search <Document.DealerSearchEntry.DealerSearchEntry>(s => s .Index(IndexConfig.GetIndexName <Document.DealerSearchEntry.DealerSearchEntry>()) .From(0) .Size(10) .Query(q => q .Bool(b => b .Should( o => o.Term(t => t.Field(p => p.DealerNumber).Value(potentialDealerNumber).Boost(2)), o => o.Match(m => m.Field(p => p.DisplayedCompanyName).Query(searchTerm).Boost(1.5)), o => o.Match(m => m.Field(p => p.ShortDescription).Query(searchTerm)), o => o.Match(m => m.Field(p => p.DetailedDescription).Query(searchTerm)), o => o.Match(m => m.Field(p => p.CategoryKeywords).Query(searchTerm)) ) .Filter(f => f.Term(t => t.Field(p => p.LanguageID).Value(userLanguageID))) ))); return(response); }