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);
        }