solr join用例(不在中而不是在中)

solr join用例(不在中而不是在中),solr,Solr,Solr已经从版本4开始实现了!加入查询 我想知道下列情况是否可行。 例如,我们有以下格式的文件: 文件1: 字段1:123 字段2:A 字段3:456 文件2: 字段1:123 字段2:B 字段3:789 文件3: 字段1:23456 字段2:A 字段3:264 我们需要检索字段2等于的所有文档 B,并且没有其他具有相同字段field1值的文档包含 字段字段2的值为A 在SQL中,这可以通过不在中的操作完成:从文档中选择* 其中字段2='B'和字段1不在从文档中选择字段1的位置 字段2='A'

Solr已经从版本4开始实现了!加入查询

我想知道下列情况是否可行。 例如,我们有以下格式的文件: 文件1: 字段1:123 字段2:A 字段3:456 文件2: 字段1:123 字段2:B 字段3:789 文件3: 字段1:23456 字段2:A 字段3:264

我们需要检索字段2等于的所有文档 B,并且没有其他具有相同字段field1值的文档包含 字段字段2的值为A

在SQL中,这可以通过不在中的操作完成:从文档中选择* 其中字段2='B'和字段1不在从文档中选择字段1的位置 字段2='A'

联接运算符与SQL in运算符等效

我们可以使用solr join或其他函数来实现我们的需求吗

谢谢

您需要为此目的使用。这里有同样的问题和答案:

以下是您的示例查询:

q=-_query_:"{!join from=doc_id to=id}field2:'A'"
它将返回所有没有字段2值的文档

此外,如果只需要B值,您可以向q添加另一个条件:

q={!join from=doc_id to=id}field2:'B'"

它将返回字段2的所有带“B”值的文档。

添加一个示例,并使用链接作为主题的更多信息。@Deer-Outdoor.nl为crls123要求的案例添加了示例。