在 Solr join 文档Solr Join中他们说:
/solr/collection1/select ? fl=xxx,yyy & q={!join from=inner_id to=outer_id}zzz:vvv
Run Code Online (Sandbox Code Playgroud)
相当于:
SELECT xxx, yyy
FROM collection1
WHERE outer_id IN (SELECT inner_id FROM collection1 where zzz = "vvv")
Run Code Online (Sandbox Code Playgroud)
我如何在 Solr 中编写(参见 NOT):
SELECT xxx, yyy
FROM collection1
WHERE outer_id NOT IN (SELECT inner_id FROM collection1 where zzz = "vvv")
Run Code Online (Sandbox Code Playgroud)
让我们考虑以下示例:
人员记录:
1. name='a', id=1, teacherId=4
2. name='b', id=2, teacherId=4
3. name='c', id=3, teacherId=1
4. name='d', id=4, isTeacher='true'
Run Code Online (Sandbox Code Playgroud)
现在我想选择其teacherId 指向非教师ID 的所有学生(记录#3)。
在 SQL 中:
select * from people where teacherId not in (select id where isTeacher='true').
Run Code Online (Sandbox Code Playgroud)
小智 6
我也面临这个问题,我是这样解决的:
q=-_query_:"{!join from=inner_id to=outer_id}zzz:vvv"
Run Code Online (Sandbox Code Playgroud)
您也可以添加此嵌套查询fq。
希望有帮助!)
| 归档时间: |
|
| 查看次数: |
2086 次 |
| 最近记录: |