0

我有一个场景,我在 solr 中有一个产品数据库,在 MySql 中有一个品牌数据库。在 solr 产品数据库中,我有一个名为 brandid 的字段,我在其中引用了品牌数据库中的 Mysql 主键。现在我想为每个 solr 搜索查询加入品牌数据库,并将结果与​​产品结果分开分组。我考虑了第二个 solr 数据库,我在其中保存品牌数据,然后在每个查询中加入它,但我希望每个品牌只有一次,而不是与产品结果合并到同一个结果集中。我的目标是品牌的刻面风格结果。任何人都有一个指针,我如何在我的 xml/json 中实现这种结果?

结果集我希望如何在伪 solr 代码中使用它:

<results>
    <products>
        <product>
            ...
        </product>
        <product>
            ...
        </product>
        <product>
            ...
        </product>
        <product>
            ...
        </product>
    </products>
    <brands>
        <brand>
            ...
        </brand>
        <brand>
            ...
        </brand>
    </brands>
</results>
4

2 回答 2

3

如果您只需要提供品牌数据库中的其他字段并且您不需要搜索/过滤它们,那么您可以应用一个简单的分面brandid并在后处理步骤中从 DB 直接/内存缓存/键值存储中填充表示字段...并用于facet.mincount=1消除当前查询中没有任何产品的品牌。

于 2013-11-12T11:52:42.130 回答
1

可以使用高级语言吗?

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

solrj

提供其他高级语言:

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

于 2013-11-13T07:50:02.807 回答