public Kartverket.Metadatakatalog.Models.Article.SearchResult Search(Kartverket.Metadatakatalog.Models.Article.SearchParameters parameters) { ISolrQuery query = parameters.BuildQuery(); try { SolrQueryResults <ArticleIndexDoc> queryResults = _solrInstance.Query(query, new QueryOptions { OrderBy = parameters.OrderBy(), Rows = parameters.Limit, Start = parameters.Offset - 1, //solr is zero-based - we use one-based indexing in api Fields = new[] { "Id", "Type", "title", "LinkUrl", "MainIntro", "MainBody", "StartPublish", "Author", "LinkArea", "score" } }); return(CreateSearchResults(queryResults, parameters)); } catch (Exception ex) { Log.Error("Error in search", ex); return(CreateSearchResults(null, parameters)); } }
private Kartverket.Metadatakatalog.Models.Article.SearchResult CreateSearchResults(SolrQueryResults <ArticleIndexDoc> queryResults, Kartverket.Metadatakatalog.Models.Article.SearchParameters parameters) { List <Kartverket.Metadatakatalog.Models.Article.SearchResultItem> items = ParseResultDocuments(queryResults); return(new Kartverket.Metadatakatalog.Models.Article.SearchResult { Items = items, Limit = parameters.Limit, Offset = parameters.Offset, NumFound = GetNumFound(queryResults) }); }