Solr的索引文件嵌套(solr index nested document)

2019-09-27 16:02发布

是否Solr的支持嵌套的文件? 而有没有更好的方式来实现这种文件?

<doc>
    <field name="name">Mr. Test</field>
    <field name="case">
        <field name="link">http://foo.com</field>
        <field name="date">1-2-1234</filed>
        <field name="title">My title</filed>
    </field>
    <field name="case">
        <field name="link">http://foo.com/2/</field>
        <field name="date">1-2-1234</filed>
        <field name="title">My title 2</filed>
    </field>
</doc>

我所拥有的是一个已经多例部分的人。 这是形式的架构的合法使用Solr? 不同的人也可以是同一案件的一部分。 所以它看起来像一个关系数据库中的任务,但我使用Solr的这个项目。

Answer 1:

不,Solr的不支持嵌套结构。 看看这个问题,其他也。



Answer 2:

Solr的较新版本提供了嵌套文档支持

指数此JSON

[
  {
    "id": "1",
    "title": "Solr adds block join support",
    "content_type": "parentDocument",
    "_childDocuments_": [
      {
        "id": "2",
        "comments": "SolrCloud supports it too!"
      }
    ]
  },
  {
    "id": "3",
    "title": "Lucene and Solr 4.5 is out",
    "content_type": "parentDocument",
    "_childDocuments_": [
      {
        "id": "4",
        "comments": "Lots of new features"
      }
    ]
  }
]

到schema.xml中,u必须补充它们到达这里使用的是“标题”,“CONTENT_TYPE”,“意见”的所有字段。 参数“childDocuments”是Solr的照顾,并与它理解这是一个子文件和“CONTENT_TYPE”参数:“不是parentDocument”是标识符Solr的理解,这是父文档。 如果我们查询索引此JSON之后

"*":"*"

我们应该看到,在所有4个文件。 现在,我们可以得到的帮助,父母或子女的文件块和连接查询分析器 。 试试这个查询

http://localhost:8983/solr/collection_test/select?q={!child%20of=%22content_type:parentDocument%22}title:lucene

还有这个

http://localhost:8983/solr/collection_test/select?q={!parent%20which=%22content_type:parentDocument%22}comments:SolrCloud


文章来源: solr index nested document