私はSolrnetを使用して検索を行うことに取り組んでいます。これは私が望むように機能しています。ただし、クエリパラメータをWebページからSolrnetに渡すための最良の方法についてアドバイスが必要です。
私が理想的にやりたいのは、このサイトと同様のクエリ文字列パラメータを渡すことです。http://www.watchfinder.co.uk/SearchResults.aspx ?q = %3a&f_brand = Rolex&f_bracelets = Steel&f_movements=Automatic。
サイトのクエリ文字列からわかるように、SolrNetに直接渡されているように見えます。これが私が現在行っていることです(ファセットクエリセグメント):
パブリッククラスSoftwareSalesSearcher {{ public static SoftwareSalesSearchResults Facet() {{ ISolrOperations solr = SolrOperationsCache.GetSolrOperations(ConfigurationManager.AppSettings ["SolrUrl"]); //クエリ文字列を反復処理して、Solrnetにクエリを実行するために必要なフィールドを取得します リストqueryCollection=new List(); 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 options = new QueryOptions {{ 行=0、 ファセット=新しいFacetParameters{ クエリ=new[] {新しいSolrFacetQuery(lessThan25)、新しいSolrFacetQuery(moreThan25)、新しいSolrFacetQuery(moreThan50)、新しいSolrFacetQuery(moreThan75)} }、 FilterQueries = queryCollection.ToArray() }; var results = solr.Query(SolrQuery.All、options); var searchResults = new SoftwareSalesSearchResults(); リストsoftwareSalesInformation=new List(); foreach(results.FacetQueriesのvarファセット) {{ 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; searchResultsを返します。 } }
現時点では、次のクエリ文字列を追加して、現在のコードからすべての結果をクエリする方法がわかりません:q = :。