我需要帮助构建一个 Solr 查询,它不仅可以搜索子文档并返回父文档,还可以搜索父文档。请参阅下面的示例架构:
制造商
- ID
- 姓名
- 注释
产品
- ID
- 制造商 ID
- 产品名称
所有 Solr 文档都有一个唯一的 ID 字段,但 Products 有一个特殊的字段“ManufacturerId”作为外键。
我想搜索所有名称为“iPod”的产品并返回父“制造商”文档。我可以通过使用下面的 Join 语句来完成。
{!join from=ManufacturerId to=Id}ProductName:iPod
另外,我想撤回那些在评论中有 iPod 的制造商。因此,结果将包括所有拥有 iPod 产品并在其评论字段中包含 iPod 一词的制造商。我试过以下没有运气。
{!join from=ManufacturerId to=Id}ProductName:iPod OR Comments:iPod
任何帮助将不胜感激。
谢谢!!
更新:
当我使用过滤查询“fq”字段而不是常规查询字段“q”时,它似乎可以正常工作。我不确定这是否是最好的解决方案。另外,我想知道相关性是否会以同样的方式工作。更好的解决方案表示赞赏。
Comments:iPod {!join from=RouteId to=Id}ProductName:iPod
或者
iPod {!join from=RouteId to=Id}ProductName:iPod