我在 Solr 中进行查询时遇到了一些麻烦。问题是:我必须能够检索对指定字段具有相同值的文档,但只有当该值对指定用户出现超过 X 次时才应该检索它们。在pseudosql中它会是这样的:
select user_id from documents
where my_field="my_value"
and
(select count(*) from documents where my_field="my_value" and user_id=super.user_id) > X
我知道 solr 会为您所做的每个查询返回一个“numFound”,但我不知道如何在子查询中检索该值。
My Solr 的组织方式是用户是一个文档,用户的属性(例如姓名、年龄等)被分组在另一个文档中,其中包含“root_id”字段。因此,让我们假设以下查询获取其子项具有前缀“some_prefix”的所有根文档。
is_root:true AND _query_:"{!join from=root_id to=id}requests_prefix:\"some_prefix\""
现在,我怎样才能获得具有多个匹配 'requests_prefix:"some_prefix"' 或任何其他条件的 X 个子级的根文档(某种意义上的用户)?可能吗?
PS 必须在单个查询中完成,可以随意添加字段,但应保留根/子结构(优先)。