我的本地机器上有一个 Solr 实例,我正在通过浏览器中的管理界面访问它。Solr 的实例在非模糊搜索中正常工作(我每天都广泛使用它)。
数据库中的一条记录是我自己的名字字段 Barnaby 和姓氏字段 Dawson。另一条记录是 Marcus Downing,带有适当的名字和姓氏字段。这里的大写和写的完全一样。数据库中还有十几个姓唐宁的人,姓道森的人也有类似的数字。在我感兴趣的所有记录上,还有另一个字段 IsHistorical 设置为 false。
以下是我使用粗略匹配数(精确和不精确)执行的搜索。
IsHistorical:false AND Surname:downing
许多匹配,其中许多是精确的。
IsHistorical:false AND Surname:dawson
许多匹配,其中大多数是精确的。
IsHistorical:false AND Surname:downing~
许多匹配都不是精确的。
IsHistorical:false AND Surname:dawson~
许多匹配,其中许多是精确的
IsHistorical:false AND Forename:barnaby AND Surname:dawson~
一场比赛是正确的结果
IsHistorical:false AND Forename:marcus AND Surname:downing~
根本没有比赛
我使用姓氏和名字的首字母大写的所有组合执行了最后两次搜索,结果没有发现差异。我已确保 page 返回的行数足够大,可以查看所有返回的结果。查询是手动输入的。
我的问题是:为什么模糊搜索修饰符在搜索“downing”时阻止我获得完全匹配,但在搜索“dawson”时却没有?
我的最终目标是以模糊的方式编写匹配多个字段的查询,包括名字和姓氏。