我正在尝试在两个具有相同名称(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
注意:这似乎只适用于一个实体。
答案 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之间加入只适用于字符串字段中已经较低的值。