public async Task <IActionResult> QueryOrdering() { // 排序 ICollection <SortOrder> sortOrders = new List <SortOrder>() { new SortOrder("id", Order.DESC) }; // 使用查询条件并排序 SolrQueryResults <PostDoc> docs = await solr.QueryAsync("post_title:索尼", sortOrders); return(Ok(new ResponseResult <SolrQueryResults <PostDoc> >(ResponseStatus.SUCCEED, string.Empty, docs))); }
public IList <News> Handle(SearchNewsQuery query) { var news = _solrOperations.QueryAsync(SolrQueryHelper.BuildQuery(new SearchParameters())); var result = news.Result; throw new NotImplementedException(); }
public async Task <List <BasicSongSearchResult> > Search(string input) { if (string.IsNullOrWhiteSpace(input)) { return(null); } var terms = GetStringFuzzySearchTerms(input); AbstractSolrQuery query = null; foreach (var term in terms) { if (query == null) { query = new SolrQueryByField(SolrSearchConstants.SongName, term) { Quoted = false }; } else { query = query || new SolrQueryByField(SolrSearchConstants.SongName, term) { Quoted = false }; } query = query || new SolrQueryByField(SolrSearchConstants.ArtistName, term) { Quoted = false }; } var result = await _songSearchOperations.QueryAsync(query, new QueryOptions { Rows = 50 }); var resultList = result.ToList(); var basicSongSearchResults = _getSongsFromSearchResultsQuery.Get(resultList); return(basicSongSearchResults); }
public async Task <SearchResults <MultimediaCategory> > SearchAsync(string[] roles, string query, int start) { var opts = GetQueryOptions(roles, start); var solrResults = await _solr.QueryAsync(new SolrQuery(query), opts); return(new SearchResults <MultimediaCategory>() { Results = solrResults.ToArray(), StartIndex = solrResults.Start, TotalFound = solrResults.NumFound }); }
public async Task <IEnumerable <PodcastDocument> > Search(string query) { var response = await _solrPodcasts.QueryAsync(SolrQuery.All, new QueryOptions { Rows = 0, Facet = new FacetParameters { Queries = new[] { new SolrFacetFieldQuery("category"), new SolrFacetFieldQuery("tags") } } }); foreach (var facet in response.FacetFields["category"]) { Console.WriteLine("Category {0}: ({1} matches)", facet.Key, facet.Value); } foreach (var facet in response.FacetFields["tags"]) { Console.WriteLine("Tag {0}: ({1} matches)", facet.Key, facet.Value); } return(response); }
public async Task <List <FeedItem> > Search(string keywords, int page) { AbstractSolrQuery q = null; foreach (var keyword in keywords.Split(' ')) { if (string.IsNullOrWhiteSpace(keyword)) { continue; } var k = new SolrQuery($"title:{keyword}") || new SolrQuery($"summary:{keyword}"); if (q == null) { q = k; } else { q = q && k; } } if (q == null) { return(new List <FeedItem>()); } var res = await _solrFeedItems.QueryAsync(q, new QueryOptions { OrderBy = new [] { new SortOrder("publish_time_in_utc", Order.DESC) }, StartOrCursor = new StartOrCursor.Start(page * 50), Rows = 50 }); return(res.Select(s => SolrFeedItemToFeedItem(s)).ToList()); }
public async Task <IEnumerable <CandidatoDocumento> > SearchAsync(AbstractSolrQuery query) { return(await _solr.QueryAsync(query)); }
public async Task <IEnumerable <Document> > QueryAsync(string query, CancellationToken cancellationToken = default) { return(await _solr.QueryAsync(query, cancellationToken)); }
private async Task <SolrQueryResults <SolrNewsItem> > GetNews() { var news = await _solrOperations.QueryAsync(SolrQueryHelper.BuildQuery(new SearchParameters())); return(news); }
private async Task <string> InitProcessor(string indexName) { indexName = "gdst_" + indexName.ToLower(); _documentCount = (await _solrOperation.QueryAsync(SolrQuery.All, new QueryOptions() { StartOrCursor = new StartOrCursor.Start(0), Rows = 1 })).NumFound; _logger.LogInformation($"{indexName} NumFound :{_documentCount}"); var response = await _elasticClient.Indices.ExistsAsync(index : indexName.ToLower()); var solrSchema = await _solrOperation.GetSchemaAsync("schema.xml"); var filedTypes = solrSchema.SolrFields.Select(f => f.Type.Name).Distinct(); _logger.LogInformation($"total fields: {solrSchema.SolrFields.Count} Types: {string.Join(",", filedTypes)}"); if (!response.Exists) { var indexSettings = new IndexSettings() { NumberOfReplicas = 0 }; var properties = new Properties(); solrSchema.SolrFields.ForEach(sf => { switch (sf.Type.Name) { case "int": properties.Add(sf.Name, new NumberProperty(NumberType.Integer)); break; case "double": properties.Add(sf.Name, new NumberProperty(NumberType.Double)); break; case "float": properties.Add(sf.Name, new NumberProperty(NumberType.Float)); break; case "string": properties.Add(sf.Name, new KeywordProperty()); break; case "date": properties.Add(sf.Name, new DateProperty()); break; case "location_rpt": if (sf.Name == "GEO") { properties.Add(sf.Name, new GeoShapeProperty()); } else { properties.Add(sf.Name, new GeoPointProperty()); } break; default: properties.Add(sf.Name, new TextProperty()); break; } }); var typeMappings = new TypeMapping() { Properties = properties }; _elasticClient.Indices.Create(indexName, p => p.InitializeUsing(new IndexState() { Settings = indexSettings, Mappings = typeMappings })); } return(indexName); }