字段可以嵌套在Solr中吗?

字段可以嵌套在Solr中吗?,solr,Solr,我需要在字段中嵌套字段,solr是否提供了这种能力 例如:我需要一个名为Products的多值字段,每个产品都需要一个多值字段属性。我需要有嵌套,以便在我搜索属性时,它只返回相应的产品信息,而不是所有产品 目前,我发现如果我有10个产品,每个文档中都有10个属性,在搜索属性时,该文档中的所有产品(包含该属性)都将返回。现在,我必须通过比较数组索引,手动排序哪个产品具有该属性。因此,如果返回属性53,它将是第6个产品。当并非所有产品都具有相同数量的属性时,情况会变得更糟 没有更简单的办法吗? 提前

我需要在字段中嵌套字段,solr是否提供了这种能力

例如:我需要一个名为Products的多值字段,每个产品都需要一个多值字段属性。我需要有嵌套,以便在我搜索属性时,它只返回相应的产品信息,而不是所有产品

目前,我发现如果我有10个产品,每个文档中都有10个属性,在搜索属性时,该文档中的所有产品(包含该属性)都将返回。现在,我必须通过比较数组索引,手动排序哪个产品具有该属性。因此,如果返回属性53,它将是第6个产品。当并非所有产品都具有相同数量的属性时,情况会变得更糟

没有更简单的办法吗?
提前感谢您的回复。

不确定它在您的情况下是否有用,但这就是我在我的
数据配置.xml中所做的

<document>
<entity name="paper" query="SELECT * FROM papers">
    <field column="title" name="title"/>
    <field column="title" name="title_unstem"/>
    <field column="year" name="publish_date"/>
    <entity name="person" query="SELECT * FROM papers_people PA, people A WHERE PA.person_id = A.id AND PA.paper_id='${paper.id}'">
        <field column="id" name="author_id"/>
        <field column="first_name" name="first_name"/>
        <field column="last_name" name="last_name"/>
        <field column="full_name" name="author"/>
     </entity>
     <entity name="volume" query="SELECT * FROM volumes WHERE id='${paper.volume_id}'">
         <field column="id" name="volume_id"/>
         <field column="title" name="volume_title"/>
         <field column="anthology_id" name="volume_anthology"/>
     </entity>
</entity>
</document>


基本上你可以看到我的论文有很多作者,属于一卷。我正在使用Blacklight gem在Ruby on Rails上执行此操作,所以如果您有任何问题,请询问我。

是的,最近的Solr支持嵌套文档。不过,也有一些权衡。大多数情况下,您必须索引和删除整个父+子块。但这对你的案子来说应该不是问题


之后,您可以使用以下几种不同的方法搜索它们。

如果这是您的关键需求,并且您在solr上没有投入太多,那么,我建议您看看elasticsearch


否则,blockjoin是在solr中实现此功能的唯一现成方法,它看起来更像是一种黑客行为。

我应该提到我不能使用DIH。但是谢谢你的回答,谢谢你的回答。既然我已经走得太远了,现在不想放弃solr,我会坚持下去,试试blockjoin。