Solr Cloud - 查询唯一字段 returns 不同的结果
Solr Cloud - Querying on unique field returns different results
我 运行 遇到一个问题,即对我们的 Solr 搜索的查询将 return 不同的值。但是我正在查询 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 不同。
选中调试查询。您可以看到不同的 url 位于 GET_FIELDS
部分。
Why/how 我可以得到不同的信息吗?我正在查询标记为唯一字段的 id。根据我的理解,应该永远不会超过这些。
这可能是同步问题吗?我正在使用 Solr admin UI 查询并选择了一个核心。
有没有办法检查索引中是否只有一个具有该 ID 的文档?
更新:
I 运行 一个方面查询和唯一 returns 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>
这样对吗?这是否解释了我的问题,因为有重复的文档,但如果是这样,为什么没有两个文档得到 returned 而只是不同的数据?
这是 SolrCloud 设置还是单集合设置?如果是云,您很可能最终会在两个不同的核心中获得一条记录。可能是由于路由器或升级错误。
好消息,你应该可以通过执行 facet.field=id, [=22 找到所有有这个问题的记录=]=2。然后你可以 delete/reinsert 它们以保持一致性。
不,你不应该以这种状态结束,所以要么是配置错误,升级失败,要么是一些强制命令忽略了独特的要求。
我 运行 遇到一个问题,即对我们的 Solr 搜索的查询将 return 不同的值。但是我正在查询 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 不同。
选中调试查询。您可以看到不同的 url 位于 GET_FIELDS
部分。
Why/how 我可以得到不同的信息吗?我正在查询标记为唯一字段的 id。根据我的理解,应该永远不会超过这些。 这可能是同步问题吗?我正在使用 Solr admin UI 查询并选择了一个核心。
有没有办法检查索引中是否只有一个具有该 ID 的文档?
更新:
I 运行 一个方面查询和唯一 returns 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>
这样对吗?这是否解释了我的问题,因为有重复的文档,但如果是这样,为什么没有两个文档得到 returned 而只是不同的数据?
这是 SolrCloud 设置还是单集合设置?如果是云,您很可能最终会在两个不同的核心中获得一条记录。可能是由于路由器或升级错误。
好消息,你应该可以通过执行 facet.field=id, [=22 找到所有有这个问题的记录=]=2。然后你可以 delete/reinsert 它们以保持一致性。
不,你不应该以这种状态结束,所以要么是配置错误,升级失败,要么是一些强制命令忽略了独特的要求。