例如。我将这些行存储在我的solr中。
{city: "Boston", country: "USA"},
{city: "Miami", country: "USA"},
{city: "Orlando", country: "USA"}
我将通过"波士顿美国"搜索。在这种情况下,我想返回单个结果,因为我的搜索与所有单词匹配。那就是"one_answers"行为或类似100%值的" mm"参数。
但是,如果我通过"德克萨斯州"搜索,我想返回三个结果,因为它无法匹配所有单词,但它至少找到了一个单词。现在,我认为那是"或"行为"或" mm"参数为0值。
简而言之,我想匹配所有单词。如果没有任何结果,它应该尝试匹配至少一个单词。在唯一查询中是否可以具有两种不同的行为?
ps:我正在使用Edismax Parser。
做到这一点的一种方法是编写自己的搜索component并在那里实现该逻辑。首先运行MM = 100%的Edismax请求,如果您获得结果,请将其返回,然后使用MM = 0%等运行(您甚至可以以更多步骤,50%的步骤进行操作...)。
,或者您也可以随时以MM = 0%的速度运行,但要查看分数/匹配项,仅保留最佳结果。您可以使用突出显示来查看哪些单词匹配。