solrcrudrepository を介して solr にクエリを実行しています。リポジトリ内に、findByUsernameContainsOrNameContains(String username, String name) という名前のメソッドを定義しました。このメソッドは、検索用語をユーザー名と名前と比較し、一致する場合はドキュメントを返します (docs によると) 。用語を照合する代わりに、solr に保存されているドキュメントの完全なリストを返します。検索語が空の文字列の場合でも。何が問題ですか?
1 に答える
0
repo.findByUsernameContainsOrNameContains("someUsername", "someName");
生産しますq=username:*someUsername* OR name:*someName*
空の文字列で呼び出されると、repo.findByUsernameContainsOrNameContains("", "someName");
これは次のように変換されますq=username:** OR name:*someName*
したがってusername:**
、ユーザー名を持つすべてのドキュメントに一致します。
于 2013-09-23T21:09:47.067 に答える