0

我正在通过 solrcrudrepository 查询 solr。我在存储库中定义了一个名为:findByUsernameContainsOrNameContains(String username, String name) 的方法。该方法应将搜索词与用户名和名称进行比较,如果匹配,它将返回文档(根据文档)。这不是它的行为方式,而是返回存储在 solr 中的完整文档列表,而不是匹配术语。即使搜索词是空字符串。问题是什么?

4

1 回答 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 回答