2

Edismax パーサーを使用して、Solr テキスト フィールドにアスタリスク/クエリ マークを含むドキュメントを検索しようとしています。通常のテキスト ( ) を検索したり、エスケープ ( ) を使用してfq={!edismax}textfield:*sometext*その他の特別な Lucene 文字を検索したりすると、すべてが完全に機能しますfq={!edismax}textfield:*\~*

*ただし、 ( fq={!edismax}textfield:*\**) または?( )を検索するfq={!edismax}textfield:*\?*と、すべてのドキュメントが返されるため、これらの文字はエスケープされないようです。エスケープ文字のURL エンコーディングも試してみましたが (\%2A代わりに のように\*)、結果は同じです。

とは正しい結果を返しますが、fq={!edismax}textfield:\**とは返さないため、問題は主要なワイルドカードのみに関係しているように見えます (同様に)。fq={!edismax}textfield:\?*fq={!edismax}textfield:*\*fq={!edismax}textfield:*\?fq={!edismax}textfield:*sometext\*

先行するアスタリスク ワイルドカードを使用して Edismax を検索*/使用するにはどうすればよいですか??

4

1 に答える 1

0

アスタリスクを引用するとうまくいきます。このクエリは、タイトルに独立したアスタリスクが付いた 2 冊の本をインデックスで検索します。

title:"*"

そのうちの 1 つのタイトルは次のとおりです。「Be * Know * Do、公式陸軍指導者マニュアルから採用」

Solr 3.3 で edismax を使用しています。

于 2012-04-04T19:44:30.697 に答える