4

solrで予約されたキーワードを「:」として含むフィールドをクエリするにはどうすればよいですか?

例えば、

q = 'uri:http://www.example.com'

予約語「:」を含む「 http://www.example.com 」のエラーをスローします

4

2 に答える 2

5

これをテストしたところ、「:」のように「:」をエスケープするだけでうまくいくようです。

q = 'uri:http\://www.example.com'

自分のサイトのインデックスでは、URLのパスを保存する傾向がありますが、ドメインを自分で知っているので、以前は問題になりませんでした。ただし、外部URLにインデックスを付ける場合は、もちろん完全なURLが必要です。

于 2009-02-21T14:10:54.807 に答える
1

インデックス作成中にLuceneの予約文字をエスケープ/置換し、元の値を別のフィールド(stored="true" indexed="false"スキーマ内)に格納します。予約文字をスペースに置き換えるhttp www.example.comと、インデックス付きフィールドに入れられhttp://www.example.com、保存されます。インデックス付きフィールドのタイプに応じて、正確な値(プレーン文字列の場合)またはトークン(アナライザーがある場合)を照会できます。

于 2009-02-21T10:07:15.440 に答える