【问题标题】:Bast Way On Passing Query Parameters to Solrnet将查询参数传递给 Solrnet 的基本方法
【发布时间】:2011-01-13 09:44:13
【问题描述】:

我一直在努力使用 Solrnet 进行搜索,这正在以我想要的方式工作。但我只是想要一些关于将我的查询参数从我的网页传递到 Solrnet 的最佳方式的建议。

我最理想的做法是传递与此网站类似的查询字符串参数:http://www.watchfinder.co.uk/SearchResults.aspx?q=%3a&f_brand=Rolex&f_bracelets=Steel&f_movements=Automatic。

从站点查询字符串中可以看出,它看起来像是直接传递到 SolrNet 中的。这是我目前正在做的事情(方面查询段):

公共类 SoftwareSalesSearcher { 公共静态 SoftwareSalesSearchResults Facet() { IsolrOperations solr = SolrOperationsCache.GetSolrOperations(ConfigurationManager.AppSettings["SolrUrl"]); //遍历querystring获取查询Solrnet所需的字段 列表查询集合 = 新列表(); foreach(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 选项 = 新的 QueryOptions { 行 = 0, 方面 = 新方面参数 { 查询 = new[] { 新 SolrFacetQuery(lessThan25),新 SolrFacetQuery(moreThan25),新 SolrFacetQuery(moreThan50),新 SolrFacetQuery(moreThan75) } }, FilterQueries = queryCollection.ToArray() }; var 结果 = solr.Query(SolrQuery.All, 选项); var searchResults = new SoftwareSalesSearchResults(); 列出软件SalesInformation = new List(); foreach(results.FacetQueries 中的 var facet) { 如果(方面。值!= 0) { SoftwareSalesFacetDetail salesItem = new SoftwareSalesFacetDetail(); salesItem.Price = facet.Key; salesItem.Value = facet.Value; 软件SalesInformation.Add(salesItem); } } searchResults.Results = 软件销售信息; searchResults.TotalResults = 结果.NumFound; searchResults.QueryTime = 结果.Header.QTime; 返回搜索结果; } }

目前,我似乎无法通过添加以下查询字符串来查询当前代码中的所有结果:q=:

【问题讨论】:

    标签: search solrnet


    【解决方案1】:

    我不确定您所说的“将参数直接传递到 SolrNet”是什么意思。似乎 watchfinder 正在使用model binder included in the SolrNet sample app 的某些变体。

    还可以查看controller in the sample app 以了解 SolrNet 参数是如何构建的。

    【讨论】:

    • 啊,谢谢毛里西奥。这看起来像我想要实现的目标。我会试试看的!
    猜你喜欢
    • 1970-01-01
    • 2021-12-30
    • 1970-01-01
    • 2017-12-06
    • 2017-09-27
    • 2014-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多