有没有可能有一个Solr查询让我;“所有匹配项”;或;“一些比赛”;同样的结果?

有没有可能有一个Solr查询让我;“所有匹配项”;或;“一些比赛”;同样的结果?,solr,edismax,Solr,Edismax,比如说。我将这些行存储在我的Solr中 {city: "Boston", country: "USA"}, {city: "Miami", country: "USA"}, {city: "Orlando", country: "USA"} 我将通过“美国波士顿”搜索。在这种情况下,我希望返回一个结果,因为我的搜索匹配所有单词。这是“AND”行为或类似于“mm”参数的100%值 但如果我按“德克萨斯美国”搜索,我想返回三个结果,因为它不能匹配所有单词,但它至少找到了一个单词。现在,我认为这

比如说。我将这些行存储在我的Solr中

{city: "Boston", country: "USA"}, 
{city: "Miami", country: "USA"}, 
{city: "Orlando", country: "USA"}
我将通过“美国波士顿”搜索。在这种情况下,我希望返回一个结果,因为我的搜索匹配所有单词。这是“AND”行为或类似于“mm”参数的100%值

但如果我按“德克萨斯美国”搜索,我想返回三个结果,因为它不能匹配所有单词,但它至少找到了一个单词。现在,我认为这是“或”行为,或者类似于值为0的“mm”参数

简言之,我想匹配所有单词。如果没有任何结果,它应该尝试匹配至少一个单词。 在唯一查询中是否可能有两种不同的行为


ps:我正在使用eDismax解析器。

一种方法是编写自己的解析器并在那里实现该逻辑。首先使用mm=100%运行eDiscoveryMax请求,如果得到结果,则返回结果,如果没有,则使用mm=0%等运行请求(您甚至可以使用更多步骤,50%…)

或者,您也可以始终使用mm=0%运行,但请查看分数/匹配项,并在客户端仅保留最佳结果。您可以使用高亮显示来查看匹配的单词