Bast Way при передаче параметров запроса Solrnet
Вопрос
Я работал над созданием поиска, используя Solrnet, который работает так, как я хочу. Но мне просто хотел бы несколько советов по лучшему способу передать мои параметры запроса с моей веб -страницы в Solrnet.
В идеале я хотел бы пройти параметры строки запросов, аналогичные тому, как это делает этот сайт: http://www.watchfinder.co.uk/searchresults.aspx?q=%3A& f_brand = rolex & f_bracelets = steel & f_movements = автоматическое.
Как вы можете видеть из строки запроса сайтов, она выглядит так, как будто она передается напрямую в SolrNet. Вот я сейчас делаю это (сегмент аспектов -запросов):
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; } }
На данный момент я не могу видеть, как я могу запросить все свои результаты из моего текущего кода, добавив следующий запрос: Q =:.
Решение
Я не уверен, что вы подразумеваете под «параметрами, передаваемыми напрямую в SolrNet». Кажется, что WatchFinder использует какой -то вариант модель связующего, включенное в приложение Solrnet Sample.
Также взгляните на контроллер в приложении примера Чтобы увидеть, как построены параметры solrnet.