private IElasticSearchService <TContentData> CreateQuery(Query query, CultureInfo language, int searchRootId) { if (query.Parameters.TryGetValue(Core.Models.Constants.MoreLikeThisId, out object mltId) && mltId != null) { var id = ContentReference.Parse(mltId.ToString()).ToReferenceWithoutVersion(); var esQuery = _elasticSearchService .MoreLikeThis <TContentData>(id.ToString(), minimumWordLength: 2, minimumDocFrequency: 1) .UseIndex(IndexName) .Language(language) .StartFrom(searchRootId) .Take(_elasticSearchSettings.ProviderMaxResults); foreach (var field in Conventions.MoreLikeThis.ComponentFields.Keys.ToArray()) { esQuery = esQuery.InField(_ => field); } return(esQuery); } return(_elasticSearchService .WildcardSearch <TContentData>(String.Concat("*", query.SearchQuery, "*")) .UseIndex(IndexName) .Language(language) .Boost(_ => DefaultFields.Name, 20) .Boost(_ => DefaultFields.Id, 10) .StartFrom(searchRootId) .Take(_elasticSearchSettings.ProviderMaxResults)); }