确保AND始终返回结果

时间:2016-07-08 18:52:51

标签: solr

目前,如果我为HOUSTON BOSTON ATLANTA GOOBER搜索一组107个索引的MLB时间表,并且没有文档包含GOOBER,则返回0结果。

有没有办法进行搜索,如果找不到其中一个条款,那么它会返回结果,好像搜索是HOUSTON BOSTON ATLANTA(实际上忽略了GOOBER)?

我是从Solr Web UI执行此操作的。没什么好看的。

跟进:如果不可能,我会在哪里开始实现该功能?

1 个答案:

答案 0 :(得分:0)

嗯,根据定义,当且仅当所有条件都为真时,AND总是返回true。你不想“确保AND总是返回结果”(让我们不要违反布尔逻辑的长期惯例,呃?),而是希望有一个应用程序逻辑来检测你的AND查询是否没有返回结果。如果是这样,请触发备用查询。或者更好的是,编写您的布尔短语,以便您可以在一个查询中执行此操作。 (并非总是可行,但经常如此。)

听起来你需要使用OR。例如:HOUSTON OR BOSTON OR ATLANTA OR GOOBER。如果Goober不存在,那么仍然会找到休斯顿,波士顿或亚特兰大的任何东西。从好的方面来说,如果存在Goober的东西,也会找到Goober。

如果您对查询的用例更具体,我可能会在需要时为您提供进一步的帮助。