我有类似这样的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
但是我无法选择核心位置的字段。我怎么能这样做?您的宝贵建议将不胜感激。
答案 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