Ich habe gearbeitet, um eine Suche mit Solrnet, die funktioniert so, wie ich will. Aber ich hätte gerne einen Ratschlag, wie ich meine Abfrageparameter von meiner Webseite am besten in Solrnet übertrage.Bast Weg beim Übergeben von Abfrage-Parameter an Solrnet
Was würde ich im Idealfall zu tun ist meine Abfrage-String-Parameter übergeben ähnlich, wie diese Seite funktioniert es: http://www.watchfinder.co.uk/SearchResults.aspx?q=% 3a & f_brand = Rolex & f_bracelets = Stahl & f_movements = Automatisch.
Wie Sie aus der Site Query String sehen können, sieht es so aus, als ob es direkt in SolrNet übergeben wird. Hier wird ich es im Moment tun (Facette Abfrage Segment):
public class SoftwareSalesSearcher { public static SoftwareSalesSearchResults Facet() { ISolrOperations solr = SolrOperationsCache.GetSolrOperations(ConfigurationManager.AppSettings["SolrUrl"]); //Iterate through querystring to get the required fields to query Solrnet List queryCollection = new List(); foreach (string key in HttpContext.Current.Request.QueryString.Keys) { queryCollection.Add(new SolrQuery(String.Format("{0}:{1}", key, HttpContext.Current.Request.QueryString[key]))); } var lessThan25 = new SolrQueryByRange("SoftwareSales", 0m, 25m); var moreThan25 = new SolrQueryByRange("SoftwareSales", 26m, 50m); var moreThan50 = new SolrQueryByRange("SoftwareSales", 51m, 75m); var moreThan75 = new SolrQueryByRange("SoftwareSales", 76m, 100m); QueryOptions options = new QueryOptions { Rows = 0, Facet = new FacetParameters { Queries = new[] { new SolrFacetQuery(lessThan25), new SolrFacetQuery(moreThan25), new SolrFacetQuery(moreThan50), new SolrFacetQuery(moreThan75) } }, FilterQueries = queryCollection.ToArray() }; var results = solr.Query(SolrQuery.All, options); var searchResults = new SoftwareSalesSearchResults(); List softwareSalesInformation = new List(); foreach (var facet in results.FacetQueries) { if (facet.Value != 0) { SoftwareSalesFacetDetail salesItem = new SoftwareSalesFacetDetail(); salesItem.Price = facet.Key; salesItem.Value = facet.Value; softwareSalesInformation.Add(salesItem); } } searchResults.Results = softwareSalesInformation; searchResults.TotalResults = results.NumFound; searchResults.QueryTime = results.Header.QTime; return searchResults; } }
Im Moment habe ich nicht scheinen kann, zu sehen, wie ich all meine Ergebnisse von meinem aktuellen Code abfragen, indem Sie den folgenden Abfragezeichenfolgeflag hinzufügen: q = :.
Ah danke Mauricio. Das sieht so aus, als würde ich versuchen, es zu erreichen. Ich werde es versuchen! – R100