### Elasticsearch Version

v8.10

RRF produces inconsistent ranking between primary and replica shards when documents from different queries have the same rank.
For example, if: 
doc1 has a rank 1 in the hits set for Query1 (and is not present in the hit set for Query 2)
doc2 has a rank 1 in the hits set for Query2 (and is not present in the hit set for Query 1)

documents doc1 and doc2 could be ranked differently : [doc1, doc2] and [doc2, doc1] depending which shard search will hit.

### Steps to Reproduce

To be provided

### A solution

This happens because for tie breaking, we use internal doc IDs, which is dependant on a shard. Instead we can use an original query ID or order to ensure consistent ordering.

x-pack/plugin/rank-rrf/src/test/java/org/elasticsearch/xpack/rank/rrf/RRFRankContextTests.java
expected.scores[1] = 7.5f;
        expected.score = 0.6666667f;
        assertRDEquals(expected, (RRFRankDoc) std.scoreDocs()[0]);
        expected = new RRFRankDoc(1, 1, 2);
        expected.rank = 2;
        expected.positions[0] = NO_RANK;
        expected.positions[1] = 0;
        expected.scores[0] = 0.0f;
        expected.scores[1] = 8.0f;
        expected.score = 0.5f;
        assertRDEquals(expected, (RRFRankDoc) std.scoreDocs()[1]);
        expected = new RRFRankDoc(3, 1, 2);
        expected.rank = 3;
        expected.positions[0] = 0;
        expected.positions[1] = NO_RANK;
        expected.scores[0] = 10.0f;
        expected.scores[1] = 0.0f;
        expected.score = 0.5f;
        assertRDEquals(expected, (RRFRankDoc) std.scoreDocs()[2]);
        expected = new RRFRankDoc(2, 2, 2);
        expected.rank = 4;
        expected.positions[0] = 3;
        expected.positions[1] = 3;
        expected.scores[0] = 8.5f;
        expected.scores[1] = 6.5f;
        expected.score = 0.4f;
        assertRDEquals(expected, (RRFRankDoc) std.scoreDocs()[3]);
    }
}