我有一个关于在solr中创建嵌套字段的可能性的问题。 谷歌搜索告诉我一些关于团队的事情,但我认为这只是为了结果?
我想拥有的是这样的结构:
我试过这样的事情:
<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项目(= facet)是类别的一部分。一个类别可以有多个或空字段。类别和项目存储在数据库中,我想动态索引它们。我只想搜索项目,类别只是文本。我在Tomcat 7中使用solr 3.3。
答案 0 :(得分:6)
感谢您的更新。 Pivot facets允许您执行以下操作:
..但它们仅适用于Solr 4.0(主干)。但是,您可以在较低的Solr(低至1.4)中模拟这些结果,尽管它有点复杂并且需要两个Solr查询而不是一个。我写了一篇博客文章 - Pivot Faceting (Decision Trees) in Solr 1.4。
您可以保留原始问题中的架构 - 数据分片(真实或模拟)适用于任意,不同(或相同)的字段。
答案 1 :(得分:1)
Pivot facets是您定义层次结构方面所需要的 但是,您需要使用trunk构建才能使其正常工作。
如果您在升级时遇到问题,可以查看选项@ http://www.lucidimagination.com/why-lucid/webinars/mastering-power-faceted-search
这是一种解决方法,需要您操纵您提供的数据。
Cattegory1 -> item 1
0//Cattegory1 and 1//Cattegory1//item1
它与 - 的组合起作用
使用fq = category过滤结果:“0 // Cattegory1”
facet.prefix将帮助您根据级别限制构面,如果您需要限制结果
答案 2 :(得分:0)
您是否可以将该类别仅作为该项目的字段,以便例如当您搜索类别1时,项目1和2会回到结果中吗?
如果您有两个字段绝对必须是实体的一部分并且必须彼此关联,则多边形字段可能有所帮助。它们被设计用于具有x和y值的点。
我认为我们需要了解更多关于你想要做些什么来建议在Solr中处理它的好方法。