如何在solr中使用join以从两个核心中获得结果?

如何在solr中使用join以从两个核心中获得结果?,join,solr,solrj,solrcloud,Join,Solr,Solrj,Solrcloud,我有两个核心: 核心1:书号、地点、标题、作者、出版日期 核心2:BookID、文本、引用、大小、上次更新 {!加入%20from=PaperID%20to=fileName%20fromIndex=core2%20}大小:15870 上述查询返回零个结果,如下所示: <response> <lst name="responseHeader"> <int name="status">0</int> <int na

我有两个核心:

核心1:书号、地点、标题、作者、出版日期

核心2:BookID、文本、引用、大小、上次更新

{!加入%20from=PaperID%20to=fileName%20fromIndex=core2%20}大小:15870

上述查询返回零个结果,如下所示:

<response>
   <lst name="responseHeader">
      <int name="status">0</int>
      <int name="QTime">0</int>
      <lst name="params">
         <str name="q">{!join from=PaperID to=fileName fromIndex=PapersIndex }size:15870</str>
         <str name="fl">Title, Venue</str>
      </lst>
   </lst>
   <result name="response" numFound="0" start="0" />
</response>

0
0
{!将from=PaperID连接到=fileName fromIndex=PapersIndex}大小:15870
标题、地点

我不知道solr连接是如何工作的。为什么它会给出零结果?

Solr中的联接不能从两侧返回结果。将连接视为“通过从不同的核心进行匹配来过滤结果”(即常规SQL中的内部连接)

您的示例给出零结果的原因可能是因为您将一个核心的ID与另一个核心的大小合并。您希望根据ID(即两个核心中的公共ID)加入ID

但您仍然只能从单个核心/集合返回数据


解决方案通常是将所有内容索引到同一个核心中,尽管支持使用流式表达式(其中每个结果都返回,然后从两个游标连接)与来自双方的数据进行连接,但是我不建议您从头开始就将查询和索引设计建立在这个基础上。

Solr中的连接不能从双方返回结果。将连接视为“通过从不同的核心进行匹配来过滤结果”(即常规SQL中的内部连接)

您的示例给出零结果的原因可能是因为您将一个核心的ID与另一个核心的大小合并。您希望根据ID(即两个核心中的公共ID)加入ID

但您仍然只能从单个核心/集合返回数据


解决方案通常是将所有内容索引到同一个核心中,尽管支持使用流式表达式(其中每个结果都返回,然后从两个游标连接)与来自双方的数据进行连接,但我不建议您从头开始将查询和索引设计基于此。

解决了。。。pretty simple尝试了以下查询:

http://localhost:8983/solr/core/select?q=*:*&%20fl=%20Title,Year&fq={!join%20from=BookID%20fromIndex=core2%20to=BookID}Year:2000
您可以根据基于第二个核心的某些条件从第一个核心获取字段


就像我需要从core1中找到
field1,field2,…fieldn
,其中
core2.field=“something”
解决了。。。pretty simple尝试了以下查询:

http://localhost:8983/solr/core/select?q=*:*&%20fl=%20Title,Year&fq={!join%20from=BookID%20fromIndex=core2%20to=BookID}Year:2000
您可以根据基于第二个核心的某些条件从第一个核心获取字段


就像我需要来自core1的
field1,field2,…fieldn
,其中
core2.field=“something”

@MatsLindh感谢您的指导。。。实际上,在上面的查询中,我将ID与ID进行比较。大小是第二个核心的条件和字段。我需要第一个核心的结果,基于第二个核心的条件,返回第一个核心的一些属性,其中大小为15870。其中大小是第二个核心的字段。@MatsLindh感谢您的指导。。。实际上,在上面的查询中,我将ID与ID进行比较。大小是第二个核心的条件和字段。我需要第一个核心的结果,基于第二个核心的条件,返回第一个核心的一些属性,其中大小为15870。其中,size是第二个核心的字段。