我有一个场景,我在solr中有一个productdatabase,在MySql中有一个branddatabase。在solr productdatabase中我有一个名为brandid的字段,其中我引用了branddatabase中的Mysql主键。现在,我想为每个solr searchquery加入branddatabase,并将结果与产品结果分开。我想到了第二个solr数据库,我保存了branddata,然后在每个查询中加入它,但我想让每个品牌只有一次,而不是将产品结果合并在同一个结果集中。我的目标是为品牌提供一个简洁的结果。任何人都有一个指针,我怎么能在我的xml / json中实现这种结果?
结果集我希望如何在伪solr代码中使用它:
<results>
<products>
<product>
...
</product>
<product>
...
</product>
<product>
...
</product>
<product>
...
</product>
</products>
<brands>
<brand>
...
</brand>
<brand>
...
</brand>
</brands>
</results>
答案 0 :(得分:3)
如果您只需要提供品牌数据库中的其他字段,而无需对其进行搜索/过滤,那么您可以在brandid
上应用简单的分面,并在数据库的后处理步骤中填充演示文稿字段直接/内存缓存/密钥值存储...
并使用facet.mincount=1
来消除当前查询中没有任何产品的品牌。
答案 1 :(得分:1)
您可以使用更高级别的语言吗?
我目前做类似的事情,但我用Java作为粘合剂。 Java应用程序接受请求,使用solrj反对solr,检索所有结果,包括facet,我采取响应和查询mysql以获取更多信息,我合并java层中的所有数据然后构造xml / json回应。
提供其他更高级别的语言: