SOLR嵌套对象是否因多级嵌套而被破坏?

时间:2016-06-19 09:01:05

标签: solr

对于使用SOLR 5.5.1和SOLR 6.1.0的SOLR对象的多级嵌套,我观察到非常奇怪的行为(如果重要的话,SOLR Cloud是特定的)。

我认为这是一个SOLR错误。但是,我对嵌套对象的体验是有限的,因此,我非常感谢来自更有经验的人的任何评论。重现问题的步骤:

  1. 启动清理SOLR实例并创建测试集合:
  2. ./bin/solr start -e cloud -noprompt
    ./bin/solr create_collection -c qa -shards 2 -p 8983
    
    1. 上传测试数据:
    2. 
      
          <doc>
              <field name="id">CONTAINER_1</field>
              <field name="title">CONTAINER</field>
              <doc>
                  <field name="id">CONTAINER_1_ITEM</field>
                  <field name="title">META</field>
              </doc>
              <doc>
                  <field name="id">CONTAINER_1_PERSON</field>
                  <field name="title">META</field>
              </doc>
              <doc>
                  <field name="id">DOC_1</field>
                  <field name="title">DOCUMENT</field>
                  <doc>
                      <field name="id">DOC_1_ITEM</field>
                      <field name="title">META</field>
                  </doc>
                  <doc>
                      <field name="id">DOC_1_PERSON</field>
                      <field name="title">META</field>
                  </doc>
              </doc>
              <doc>
                  <field name="id">DOC_2</field>
                  <field name="title">DOCUMENT</field>
                  <doc>
                      <field name="id">DOC_2_ITEM</field>
                      <field name="title">META</field>
                  </doc>
                  <doc>
                      <field name="id">DOC_2_PERSON</field>
                      <field name="title">META</field>
                  </doc>
              </doc>
          </doc>
      
      
      1. 查询:
      2. {!child of=title:DOCUMENT}id:DOC_2

        一切都按预期工作,响应中有2个文档:

            [
              {
                "id":"DOC_2_ITEM",
                "title":["META"]},
              {
                "id":"DOC_2_PERSON",
                "title":["META"]}
            ]
        1. 查询:
        2. {!child of=title:DOCUMENT}id:DOC_1

          使用4个文档而不是2个文档查看奇怪的回复:

              [
                {
                  "id":"CONTAINER_1_ITEM",
                  "title":["META"]},
                {
                  "id":"CONTAINER_1_PERSON",
                  "title":["META"]},
                {
                  "id":"DOC_1_ITEM",
                  "title":["META"]},
                {
                  "id":"DOC_1_PERSON",
                  "title":["META"]}
              ]

          关于什么是错的任何想法?关于可能的解决方法的任何想法?

1 个答案:

答案 0 :(得分:1)

因为它已经说there试图联合所有封闭的父母的面具,例如

<强> UPD

{!child of='title:(DOCUMENT CONTAINER)'}id:DOC_1

好的。这个不同的层次应该是有区别的。只有将CONAINER_1- * docs标记为META_1

时,它才有效