首页 > 解决方案 > 使用 Solr API 进行原子更新后 DIH 索引重复文档

问题描述

我正在使用 Solr 7.5.0 使用 DIH 进行索引。使用 DIH 的第一次索引工作正常

DIH 请求格式:

网址:http://localhost:8983/solr/LatestDemo1/dataimport?command=full-import&Person=1,2,3&entity=Person&commit=true&clean=false

DIH之后的索引数据:

{"response":{"numFound":1,"start":0,"docs":[
      {
        "id":"P1",
        "CreatedOnUtc":"2019-04-05T10:39:29.820Z",
        "Name":"Mahesh",
        "Age":25,
        "Gender":"M"
      }
}

使用原子更新执行部分索引后,它可以轻松更新我的字段,如名称、姓氏

使用 Solr API 使用原子更新进行更新

网址:http://localhost:8983/solr/LatestDemo1/update?commit=true&clean=true

方法:邮寄

数据:

[
    {
     "id":"P1",
     "Name":{"set":"Rakesh"},
     "LastName":{"set":"Girase"},
    }
]

原子更新后的索引数据:

{"response":{"numFound":1,"start":0,"docs":[
      {
        "id":"P1",
        "CreatedOnUtc":"2019-04-05T10:39:29.820Z",
        "Name":"Rakesh",
        "Age":25,
        "Gender":"M",
        "Lastname":"Girase"
      }
    ]  
}

这完全可以正常工作但是当我再次使用 DIH 进行索引时,文档会像下面那样重复

{"response":{"numFound":2,"start":0,"docs":[
      {
        "id":"P1",
        "CreatedOnUtc":"2019-04-05T10:39:29.820Z",
        "Name":"Mahesh",
        "Age":25,
        "Gender":"M"
      },
      {
        "id":"P1",
        "CreatedOnUtc":"2019-04-05T10:39:29.820Z",
        "Name":"Rakesh",
        "Age":25,
        "Gender":"M",
        "Lastname":"Girase"
     }
    ]
}

在这里,我已经在托管模式中将我的 Id 字段声明为 UniqueKey,如下所示

<uniqueKey>id</uniqueKey>

在使用 API 进行原子更新后,它不应使用 DIH 复制文档

任何建议表示赞赏..在此先感谢。

标签: solr

解决方案


推荐阅读