Solr Cloud 6.4.0 文档路由 compositeID 不路由到另一个分片
Solr Cloud 6.4.0 Document routing compositeID does not route to another shard
我对我的 SolrCloud 设置中发生的事情感到非常困惑。也就是说,你看我是这个话题的新手。
我当前的测试设置是:
我已经在单个服务器上创建了一个 SolrCloud(目前我没有更多的用于测试)。我使用嵌入式 Zookeeper。
我在三个节点上有三个分片,每个节点有两个副本。每个节点都有不同的 IP (8984,7574,7575)。
我用
设置了一个集合
curl 'http://localhost:8984/solr/admin/collections?action=CREATE&name=mycollection&numShards=3&replicationFactor=2&collection.configName=myconfigset&router.name=compositeId'
当我用
索引一些文档时
curl 'http://localhost:8984/solr/mycollection/update/csv?update.chain=all-into-one&commit=true&separator=%09&encapsulator=%00&header=true&trim=true&f.itau_name3.split=true&f.itau_name3.separator=;&f.itau_lnx3.split=true&f.itau_lnx3.separator=;&f.itau_af3.split=true&f.itau_af3.separator=;&f.itau_init3.split=true&f.itau_init3.separator=;' --data-binary @file.txt -H 'Content-type:text/plain; charset=utf-8'
路由工作...有时。好像要看我用的prefix/compositeID:
当我使用 r1!<uniquekey>
、r2!<uniquekey>
、r3!<uniquekey>
查询 : 和 _route_=r1!
returns 文档时带有 r1 和 r2 前缀。 _route_=r3!
似乎路由正确。在完全相同的设置中(在清除索引和重新索引之后)与 year1!
、year2!
、year3!
作为前缀的相同。具有 q=*:*&_route_=year1!
等的查询仅 returns 相应路由前缀的结果。
有人可以帮我看看这是怎么回事吗?
route-prefix的构造方法有什么限制吗?
您没有显示完整的查询,但是,我怀疑这可能会发生:
- 当您使用 route=r1 查询时!您没有添加 fq=r_field:r1
- 路线=r1!只告诉 Solr 要查询的分片,但这并不排除其他 r 字段值(如 r2 和 r3),它们也在同一个分片中索引,这就是为什么你需要添加 fq
这有意义吗?
我对我的 SolrCloud 设置中发生的事情感到非常困惑。也就是说,你看我是这个话题的新手。
我当前的测试设置是: 我已经在单个服务器上创建了一个 SolrCloud(目前我没有更多的用于测试)。我使用嵌入式 Zookeeper。 我在三个节点上有三个分片,每个节点有两个副本。每个节点都有不同的 IP (8984,7574,7575)。
我用
设置了一个集合curl 'http://localhost:8984/solr/admin/collections?action=CREATE&name=mycollection&numShards=3&replicationFactor=2&collection.configName=myconfigset&router.name=compositeId'
当我用
索引一些文档时curl 'http://localhost:8984/solr/mycollection/update/csv?update.chain=all-into-one&commit=true&separator=%09&encapsulator=%00&header=true&trim=true&f.itau_name3.split=true&f.itau_name3.separator=;&f.itau_lnx3.split=true&f.itau_lnx3.separator=;&f.itau_af3.split=true&f.itau_af3.separator=;&f.itau_init3.split=true&f.itau_init3.separator=;' --data-binary @file.txt -H 'Content-type:text/plain; charset=utf-8'
路由工作...有时。好像要看我用的prefix/compositeID:
当我使用 r1!<uniquekey>
、r2!<uniquekey>
、r3!<uniquekey>
查询 : 和 _route_=r1!
returns 文档时带有 r1 和 r2 前缀。 _route_=r3!
似乎路由正确。在完全相同的设置中(在清除索引和重新索引之后)与 year1!
、year2!
、year3!
作为前缀的相同。具有 q=*:*&_route_=year1!
等的查询仅 returns 相应路由前缀的结果。
有人可以帮我看看这是怎么回事吗? route-prefix的构造方法有什么限制吗?
您没有显示完整的查询,但是,我怀疑这可能会发生:
- 当您使用 route=r1 查询时!您没有添加 fq=r_field:r1
- 路线=r1!只告诉 Solr 要查询的分片,但这并不排除其他 r 字段值(如 r2 和 r3),它们也在同一个分片中索引,这就是为什么你需要添加 fq
这有意义吗?