2016-04-27 20 views
0

solrのWebサイトでリテラルハッシュ文字が含まれている文字列を検索する方法を示すドキュメントが見つかりません。solrクエリでリテラルハッシュ文字を検索

例:

?q=id_number:723#52

Iは723\#52、ハッシュを脱出しようとした、及びHTML、それをコードする、723%2352が、Solrの出力は、それがハッシュシンボルで各時間を遮断することを示している:

<response> 
<lst name="responseHeader"> 
<int name="status">400</int> 
<int name="QTime">2</int> 
<lst name="params"> 
<str name="q">id_number:723</str> 
</lst> 
</lst> 
+1

あなたが引用符でみてくださいでした。 id_number: "723#52" – vinod

+0

興味深いことに、URLエンコードされた値の '723%2352'でもう一度試してみましたが、今は数回働いています - 正しいと思います。 else。値を引用符で囲んでも、PHPで渡すときにはうまくいきませんので、URLエンコードの問題だと思います。 –

答えて

1

solrはクラスsolr.StandardTokenizerを使用してクエリをトークン化するので、#文字がクエリから削除されるためです。フィールドタイプの定義のためにトークナイザを変更することができます。フィールドのためのあなたの場合は solr.StandardTokenizerからsolr.WhiteSpaceTokenizer

にフィルタクラスを変更ID_NUMBERしかし、この方法を行うことは、クエリ内の他のすべての特殊文字を受け付けます(:。、など)