Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Fixed
-
7.2
-
None
-
None
Description
IIUC idField has nothing to do with the <uniqueKey> field. It's really
the field used to route documents. Agreed, this is often the "id"
field, but still....
In fact, over in UpdateReqeust.getRoutes(), it's passed as the "id"
field to router.getTargetSlice() and just works, even though
getTargetSlice is clearly designed to route on a field other than the
<uniqueKey> if we didn't just pass null as the "route" param.
The confusing bit is that if I have a route field defined for my
collection and want to use CloudSolrClient I have to figure out that I
need to use the setIdField method to use that field for routing.
We should deprecate setIdField and refactor how this is used (i.e. getRoutes). Need to beef up tests too I suspect.
Attachments
Issue Links
- is related to
-
SOLR-11983 No indication in CloudSolrClient for missing id field
- Open
-
SOLR-7384 Delete-by-id with _route_ parameter fails on replicas for collections with implicit router
- Resolved
-
SOLR-8889 SolrCloud deleteById is broken when router.field is set
- Closed
- relates to
-
SOLR-10465 setIdField should be deprecated in favor of SolrClientBuilder methods
- Resolved
-
SOLR-15205 don't mention (deprecated) CloudSolrClient.setIdField in javadocs
- Resolved