【问题标题】:nested fields in SOLRSOLR 中的嵌套字段
【发布时间】:2024-04-27 02:25:02
【问题描述】:

我有一个关于在 solr 中创建嵌套字段的可能性的问题。 谷歌搜索告诉我一些关于组的信息,但我认为它只是为了结果?

我想要的是这样的结构:

  • 类别1
    • 项目 1 (9)
    • 项目 2 (8)
  • 类别2
    • 项目 3 (6)
  • 类别3
    • 第 4 (23) 项

我尝试过这样的事情:

<field name="Category" type="string" indexed="true" stored="true" multiValued="true" required="false">
<field name="MiscellaneousName" type="string" indexed="true" stored="true" multiValued="true" required="false"/>

但它不起作用。

更新: 类别和项目应分面。 Everey item(=facet) 是一个类别的一部分。一个类别可以有多个或空字段。类别和项目存储在数据库中,我想动态索引它们。我只想搜索项目,类别只是文本。我将 solr 3.3 与 Tomcat 7 一起使用。

【问题讨论】:

标签: solr faceted-search


【解决方案1】:

感谢您的更新。 Pivot facets 允许您执行以下操作:

  • 类别 1 (17)
    • 项目 1 (9)
    • 项目 2 (8)
  • 类别 2 (6)
    • 项目 3 (6)
  • 类别 3 (23)
    • 第 4 (23) 项

.. 但它们仅在 Solr 4.0(主干)中可用。但是,您可以在较低的 Solr(低至 1.4)中模拟这些结果,尽管它有点复杂并且需要两个 Solr 查询而不是一个。我为此写了一篇博文——Pivot Faceting (Decision Trees) in Solr 1.4

您可以保留原始问题中的架构——数据透视(真实或模拟)适用于任意、不同(或相同)的字段。

【讨论】:

  • 感谢您的回答!它看起来像我需要的东西!您认为 solr 4.0 可以使用了吗?去哪里买?
  • “Solr 4.0”实际上是指当前的 Solr 主干,您必须自己查看它是否在您将使用的区域中稳定——其中有很多新东西在“完成”的各种状态下发布。在工作中,我们运行 1.4.1,它坚如磐石,但我们还没有迈出一大步。如果您不确定,最好使用 stable (Solr 3.4),并使用我在博客文章中概述的双查询技术——它远不如 4.0 中的真正枢轴面容易,但两者会给你你所寻找的刻面树...
【解决方案2】:

枢轴分面是定义层次分面所需要的。
但是,您需要使用主干构建才能使其正常工作。

如果升级有问题,可以勾选@http://www.lucidimagination.com/why-lucid/webinars/mastering-power-faceted-search选项

这是一种解决方法,需要您操作您提供的数据。

Cattegory1 -> item 1  
0//Cattegory1 and 1//Cattegory1//item1

它与 -
的组合一起使用 使用 fq=category:"0//Category1"
过滤结果 facet.prefix 这将帮助您根据级别限制方面,如果您需要限制结果

还有http://wiki.apache.org/solr/HierarchicalFaceting,可能有用。

【讨论】:

  • 感谢您的回答,我已经更新了我的问题。但是如何使类别成为项目的一部分?如果可能的话,我可以在客户网站上对它们进行分组......
【解决方案3】:

您能否将类别设置为项目的一个字段,以便例如当您搜索类别 1 时,第 1 项和第 2 项会在结果中返回吗?

如果您有两个字段绝对必须是实体的一部分并且必须相互关联,那么多字段可能会有所帮助。它们是为具有 x 和 y 值的点而设计的。

我认为我们需要更多地了解您到底想做什么,以便提出在 Solr 中处理它的好方法。

【讨论】:

  • 感谢您的回答,我已经更新了我的问题。我不会搜索类别,只搜索项目。但是如何使商品的类别部分?
  • 使您添加项目的实体,并且项目中的一个字段为“类别”。填写类别。抱歉,尝试添加一个示例,但格式化时间很糟糕。编辑:更新后,我认为这不是您所需要的。祝你找到真正的答案好运!