Solr加入最好的方法

时间:2013-11-08 09:30:12

标签: solr lucene nosql

我有一个场景,我在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>

2 个答案:

答案 0 :(得分:3)

如果您只需要提供品牌数据库中的其他字段,而无需对其进行搜索/过滤,那么您可以在brandid上应用简单的分面,并在数据库的后处理步骤中填充演示文稿字段直接/内存缓存/密钥值存储... 并使用facet.mincount=1来消除当前查询中没有任何产品的品牌。

答案 1 :(得分:1)

您可以使用更高级别的语言吗?

我目前做类似的事情,但我用Java作为粘合剂。 Java应用程序接受请求,使用solrj反对solr,检索所有结果,包括facet,我采取响应和查询mysql以获取更多信息,我合并java层中的所有数据然后构造xml / json回应。

solrj

提供其他更高级别的语言:

Ruby,PHP,Java,Scala,Python,.Net,Perl,Javascript