Solr查询时间连接

时间:2013-08-12 17:02:32

标签: solr solr4

我正在尝试在两个具有相同名称(company_id)的字段上进行连接,但这些字段来自不同的实体,以根据它没有的字段查询文档。

例如:我有一个销售实体和一个公司实体,销售实体持有公司ID,公司实体持有公司名称。

由于尺寸原因,我无法在索引时进行此连接。

我希望获得销售额超过x的公司的名称。

我尝试了以下两种方法:

q={!join+from=company_id+to=company_id}sales:[100 TO *]

fq={!join+from=company_id+to=company_id}sales:[100 TO *]

对于fq,我刚刚将*:*指定为q参数。

在这两种情况下,我都得到了结果,但结果没有达到该范围内的销售额。

我该如何解决这个问题?

使用Solr 4.4

注意:这似乎只适用于一个实体。

2 个答案:

答案 0 :(得分:0)

对于“不同实体”,您指的是2 Solr Core? 在这种情况下,你使用了一个略有不同的sintax:

http://localhost:8983/solr/<coreTO>/select?q={!join from=docId to=id fromIndex=<coreFROM>}query

答案 1 :(得分:0)

从此链接Solr-join

我找到了解决方案。

根据这个:

连接操作是基于一个术语完成的,因此&#34;来自&#34;和&#34;到&#34;字段必须使用兼容的字段类型。例如:在StrField和TrieIntField之间加入不起作用,同样在StrField和使用LowerCaseFilterFactory的TextField之间加入只适用于字符串字段中已经较低的值。