2

Web アプリケーションの検索機能に solr を使用しています。各ユーザーの検索の末尾に「*」を追加します。したがって、検索が次の場合:foo私はそれを次のように変更しますfilename:foo*

多くの場合、ユーザーの検索にハイフンが含まれることを除いて、これは問題なく機能します。filename:foo-bar*ハイフンの後に続く検索語から生成された検索結果が削除されるため、 を検索するとゼロの結果が返されます。私はそれを逃れることができますが、filename:foo\-bar*それでも結果はゼロです。検索しようとfilename:foo"-"*すると、すべてのドキュメントが返されます。

お互いにうまくやるための方法について何か提案は-ありますか?*

助けてくれてありがとう

4

1 に答える 1

1

私の経験では、文字列内の何かがエスケープされている場合は、ワイルドカード文字をエスケープする必要がありました。これは、ワイルドカードとして機能させるためです。キャラクター自体を探すようになると思うかもしれませんが、そうではないようです. 注: 他のエスケープ文字なしで * をエスケープすると、文字 * を正確に検索するように見え、ワイルドカード演算子として使用されません。

field:*and\/or* //would NOT perform a wildcarded search for "and/or"

field:\*and\/or\* //would perform wildcard search for and/or

明確にするために、それらは後方にあるように見えますが、それが私の場合にうまくいったことです.

于 2015-04-15T19:27:49.557 に答える