在SOLR中选择连接表字段

时间:2016-02-04 10:22:45

标签: join solr

我有类似这样的SQL查询

SELECT
    P . ID,
    P .code,
    l.parent_id
FROM
    properties P
LEFT JOIN locations l ON l. ID = P .location_id;

我想将此查询转换为SOLR查询。我可以通过以下系统加入两个核心

http://example.com:8999/solr/properties/select?q=*:*&fq={!join from=id to=location_id fromIndex=locations}p_id:12345

但是我无法选择核心位置的字段。我怎么能这样做?您的宝贵建议将不胜感激。

2 个答案:

答案 0 :(得分:1)

你不能。 Solr不支持从连接的两端返回字段。 Solr不是一个关系数据库,所以你通常最好不要将它作为一个数据库使用。

相反,将每个位置的信息编入索引到每个属性,然后根据该属性进行查询。

如果任何位置信息发生变化(通常很少发生),请重新索引分配给该位置的文档。

答案 1 :(得分:1)

您可以在fl中使用子查询。像这样的fl=*,locations:[subquery fromIndex=locations]&locations.q={!terms f=id v=$row.location_id} 更多信息,请点击https://lucene.apache.org/solr/guide/6_6/transforming-result-documents.html#TransformingResultDocuments-subquery