在solr中的多个字段上复制左连接

Sum*_*rma 6 mysql solr join

我有一个mysql查询:

select t1.to_step,count(t1.to_step) from tmp t1 left join tmp t3 on 
(t1.to_step = t3.from_step and t1.applicant_id=t3.applicant_id)
where t3.to_step is null group by t1.to_step
Run Code Online (Sandbox Code Playgroud)

我试图在使用连接的solr中执行上述操作.我知道像嵌套查询一样加入solr工作但我无法找到一个正确的方法来获取所有记录,因为我从mysql查询中得到.

以下是我正在使用的:

q: "-_query_:\"{!join from=from_step_s to=to_step_s}from_step_s:[* TO *]\"",
Run Code Online (Sandbox Code Playgroud)

这给了我部分结果.基本上我的Solr的文档包含的字段applicant_id,from_step_s以及to_step_s和我想其中从加入该文件to_step_sfrom_step_s一组特定的不存在applicant_id.我认为问题出在某处,因为applicant_idsolr查询中没有进行连接(我不知道该怎么做),因为from_step_s一个文档中to_step_s的一个文档与不同的文档匹配applicant_id.

Kar*_* R. 2

您的问题是关于基于两个字段(每一侧)的联接。

简短的回答:你不能这样做。

主要逻辑JoinQueryorg.apache.solr.search.JoinQuery.JoinQueryWeight.getDocSet()中。正如您将看到的,没有使用存储字段或搜索,您可以将一个字段更改为两个字段。

埃里克·埃里克森的回答是:

你不应该这样做。

Solr 靠非规范化生存。为什么不添加一个新字段并连接旧字段呢?为什么不在索引时使用 sql join 并将所需的信息直接添加到索引中?