目前,如果我为HOUSTON BOSTON ATLANTA GOOBER搜索一组107个索引的MLB时间表,并且没有文档包含GOOBER,则返回0结果。
有没有办法进行搜索,如果找不到其中一个条款,那么它会返回结果,好像搜索是HOUSTON BOSTON ATLANTA(实际上忽略了GOOBER)?
我是从Solr Web UI执行此操作的。没什么好看的。
跟进:如果不可能,我会在哪里开始实现该功能?
答案 0 :(得分:0)
嗯,根据定义,当且仅当所有条件都为真时,AND总是返回true。你不想“确保AND总是返回结果”(让我们不要违反布尔逻辑的长期惯例,呃?),而是希望有一个应用程序逻辑来检测你的AND查询是否没有返回结果。如果是这样,请触发备用查询。或者更好的是,编写您的布尔短语,以便您可以在一个查询中执行此操作。 (并非总是可行,但经常如此。)
听起来你需要使用OR。例如:HOUSTON OR BOSTON OR ATLANTA OR GOOBER
。如果Goober不存在,那么仍然会找到休斯顿,波士顿或亚特兰大的任何东西。从好的方面来说,如果存在Goober的东西,也会找到Goober。
如果您对查询的用例更具体,我可能会在需要时为您提供进一步的帮助。