我遇到了一个问题,对 Solr 搜索的查询将返回不同的值。但是我正在查询设置为唯一键字段的 id。
因此,在 Solr Admin UI 中,我将运行类似的查询。
相关响应信息如下。
"response": {
"numFound": 1,
"start": 0,
"maxScore": 7.4537606,
"docs": [
{
"title": [
"ICARDA forced to move"
],
"moduleid_s": "58",
"id": "client1.com.58.1673",
"enddate_dt": "2015-09-25T23:59:00Z",
"url": "mysite.com/item.aspx?id=1673",
"startdate_dt": "2015-09-25T00:00:00Z",
现在多次运行该查询最终将导致不同的响应。
"response": {
"numFound": 1,
"start": 0,
"maxScore": 7.453251,
"docs": [
{
"title": [
"ICARDA forced to move"
],
"moduleid_s": "58",
"id": "client1.com.58.1673",
"enddate_dt": "2015-09-25T23:59:00Z",
"url": "mysiteNewUrl.com/item.aspx?id=1673",
"startdate_dt": "2015-09-25T00:00:00Z",
请注意,网址是不同的。
检查调试查询。您可以看到不同的 url 在该GET_FIELDS
部分中。
为什么/如何获得不同的信息?我正在查询标记为唯一字段的 id。据我了解,不应该超过这些。这可能是同步问题吗?我正在使用 Solr 管理 UI 查询并选择了一个核心。
有没有办法检查索引中是否只有一个具有该 ID 的文档?
更新:
我运行了一个方面查询,唯一返回 2
<lst name="facet_fields">
<lst name="id">
<int name="client1.com.58.1673">2</int>
与没有问题的人相比。
<lst name="facet_fields">
<lst name="id">
<int name="client1.com.58.163">1</int>
这是正确的吗?这是否解释了我的问题,因为存在重复的文档,但如果是这种情况,为什么不返回两个文档而不仅仅是返回不同的数据?