我有針對out solr索引運行的查詢,有時會有很長的查詢參數,我運行這些查詢時遇到錯誤,達到GET查詢參數的限制。您可以使用POST在Solr中運行查詢(/ select)
這裏是我用來查詢的方法(JSON),這是爲了說明我正在使用Http Extensions(我使用的客戶端是HttpClient的薄包裝器)而不是端到端的解決方案。 90%的查詢運行良好,只是當參數很大時,我從solr獲得500錯誤。我已經閱讀過某處可以使用POSt的地方,但還沒有找到如何去做的例子。任何幫助將是太棒了!
public string GetJson(HttpQueryString qs)
{
using (var client = new DAC.US.Web.XmlHttpServiceClient(this.Uri))
{
client.Client.DefaultHeaders.Authorization = new Microsoft.Http.Headers.Credential("Basic", DAC.US.Encryption.Hash.WebServiceCredintials);
qs.Add("wt", "json");
if (!String.IsNullOrEmpty(this.Version))
qs.Add("version", this.Version);
using (var response = client.Get(new Uri(@"select/", UriKind.Relative), qs))
{
return response.Content.ReadAsString();
}
}
}
我使用不使用HttpWebRequest,技術上,我使用了一個瘦包裝Microsoft.Http庫。我有相當多的要求,我發現使用SolrNet等實現起來更加困難。我想我的主要問題是,這是POST參數數據等於GET的查詢字符串的樣子。從你的捲曲的例子看來,這個帖子需要1個參數... – RyanFetz 2010-06-09 11:26:19
@RyanFetz:是的,POST數據和查詢字符串一樣。 – 2010-06-09 12:36:03
@RyanFetz:順便說一句我有興趣聽到有關SolrNet的這些困難:-) – 2010-06-20 05:10:00