2012-01-10 11 views
0

SolrNetを使用してより大きい/より小さいクエリを実行するにはどうすればよいですか?SolrNetのクエリ支援といくつかのデバッグオプション

例:

マイドキュメントは、「minimumDays」と呼ばれるフィールドを持っていると私はそのフィールドは、私は、クエリに渡す数以下である場合、ドキュメントを返すようにしたいです。

私は現在これを持っていますが、正しいかどうかはわかりません。

int requestedDays = 3; 
var minimumNightsQuery = new SolrQueryByRange<int>("minimumDays", 0, requestedDays, true); 

私は適切なトラックにいますか?

ここで2番目の部分は、SolrNetからSolrに渡されているクエリを理解するための方法がある場合です。私は "q"変数を検査することができる値などをデバッグする。

おかげで再びあなたの助け

答えて

1

のためにあなたは、あなたの質問の最初の部分のためのSolrQueryByRangeを使用することができます。あなたのコードは良く見えます。クエリと結果をデバッグすると役に立ちます。 SolrNetが奇妙なことをしていることが分かりました。 - http://code.google.com/p/solrnet/wiki/Facets#Arbitrary_facet_queries

2番目の部分では、ISolrConnectionをインターセプトし、間に自分自身を置くことができます。良いスタートのためにこれをチェックしてください:http://code.google.com/p/solrnet/source/browse/trunk/SampleSolrApp/LoggingConnection.cs?r=513 私はクエリと結果を記録し、設定がオンの場合、それはデバッグparamを追加し、その結果も記録します。それを得るための偉大な情報....とそれを得るための唯一の方法の一つ。

+0

"私は、SolrNetが奇妙なことをするのを発見しました。" –

+0

あなたはSolrをホストしているコンテナのログからSolrに渡されているクエリを見ることができます。例えば。 TomcatでSolrを実行している場合は、catalinaログファイルを参照して、Solrに送信されている実際のHTTP要求を確認できます。この要求には、すべてのパラメータが含まれます。 –

+0

はい、応答は表示されず、デバッグ情報も表示されません。したがって、クエリが必要な場合は正しいですが、ログレベルが正しく、クエリがPOSTではない場合は、ログにそのクエリを見つけることができます。私のアプリケーションの大部分は大きなクエリを持っているので、私は一般的にPOSTを行います。 – CrazyDart