2017-01-05 11 views
0

スラッシュで値を含むSolrを照会しようとしています。しかし、 "/ foo /"がSolr内に存在しても、私は0の結果を受け取り続けます。Solrに問題があります。スラッシュを含む値を照会します。

var query = Query.Field("tenant_id").Is("/foo/"); 
var results = solrCore.Query(query); 

この問題に対処するための最善の方法についてご意見はありますか?

UPDATE

は... SolrNet、私は馬鹿のように感じて作られた非常に簡単な修正で

var query = new SolrQuery("tenant_id:\\/retail\\/"); 
var results = solrCore.Query(query); 

みんなありがとうを、それを考え出しました!

+1

'/ foo /'は、Solrの正規表現検索の構文です。フィールドのタイプによって異なりますが、ライブラリが '/'をエスケープする場合、これは複数の方法で処理できます。 'tenant_id'の定義は何ですか? Solrのログを見て、Solrに送信された実際のクエリが何かを確認しましたか? – MatsLindh

答えて

1

https://wiki.apache.org/solr/SolrQuerySyntax

'/'は今、特別な文字であり、エスケープする必要があります。

"\/foo\/" 
+0

まだ、「0」の結果を受け取っていません。私がしたこと:var query = Query.Field( "tenant_id")。Is( "\\/foo \\ /"); – BluishMicrobe

+1

solr UIインターフェイスを使用して直接結果を確認しようとしましたか? – Oyeme

+1

私はした、私は結果を取得することができました。しかし、なぜ私はエスケープ文字でもSolrNetでQueryingに関する問題を抱えていた理由を理解できませんでした。ありがたいことに私は問題を理解しました。詳細については、私のアップデートを確認してください。 – BluishMicrobe