0

http://bugsquash.blogspot.in/2010/12/customizing-solrnet.htmlのような巨大なデータを渡すという同じ要件があり、次のことを試しました。

1) requestHeaderSize を Int32.MaxValue に増やしました - stackoverflow 例外
2) PostSolrconnection を使用しました - StackOverflow 例外を取得しました。
3) solrnet のソースをダウンロードし、プロジェクト リファレンスとして追加 - Stackoverflow 例外
その後、GET に変更しても、StackOverflow 例外が発生します。参照 ID が 500 を超えるとエラーが発生します。値が少ない場合は機能します。

これが私たちが呼んでいる方法です。

searchResults = solrPost.Query(new SolrMultipleCriteriaQuery(new[] 
                { 
                    query 
                 }), 
                      new SolrNet.Commands.Parameters.QueryOptions 
                      { 
                          Fields = new[] { "*", "score" }, 
                          Start = pageSize, 
                          Rows = 40, 
                          OrderBy = listSort 
                      }); 

何か案は?

編集:

HttpRequest を使用して solr をリクエストしようとしたところ、maxBooleanClause の問題として識別され、POST が HttpRequest を介して機能し始めました。しかし、SolrNet を使用するとエラーが発生し、クエリ オブジェクトのシリアライズ時に発生しています。queryserializer.serialize(クエリ)

4

2 に答える 2

0

残念ながら、SolrNet は、クエリ パラメータのシリアル化中にスタック オーバーフロー エラーが発生したため機能しませんでした。別の回避策が投稿されていますhttp://smartcoder.in/solrnetstackoverflow/

于 2014-02-18T18:20:50.267 に答える
0

なぜステップ 2 が機能しなかったのか疑問に思っています。これは長い Get リクエストの問題、つまり Post リクエストに切り替えるための正確な修正です。

デフォルトの SolrConnection の代わりに PostSolrConnection を使用するように SolrNet を初期化しているコード部分に問題がある可能性があります。solrPost オブジェクトのインスタンスを取得するコードを確認する必要があります。それをもう一度見て、ここに投稿してください。

于 2013-08-12T20:59:35.807 に答える