### Elasticsearch Version

master

### Installed Plugins

_No response_

### Java Version

_bundled_

### OS Version

all

### Problem Description

TimeSeriesIndexSearcher use the tsidOrd to speed up tsid compare. There is a hidden bug:
The init value of tsidOrd is 0, so it's ok to collect data from beginning. But if collect data from the middle, the tsidOrd has a wrong init value. It will cause the PriorityQueue pop the wrong LeafWalker.

### Steps to Reproduce

Create 2 segments IndexWriter, And the first segment is:
|_tsid|@timestamp|
|  ----  | ----  |
|tsid1|1|
|tsid2|11|
|tsid2|10|
|tsid3|1|

 the second segment is:
|_tsid|timestamp|
|  ----  | ----  |
|tsid1|1|
|tsid2|21|
|tsid2|20|
|tsid3|1|

the query is _tsid : tsid2 OR _tsid : tsid3
the current order is : tsid2/21 -> tsid2/11 -> tsid2/20 -> tsid2/10 -> tsid3/1  -> tsid3/1.
The right order is :  tsid2/21 -> tsid2/20 -> tsid2/11 -> tsid2/10 -> tsid3/1  -> tsid3/1.
The reason is in
```
        boolean shouldPop() throws IOException {
            if (tsidOrd == -1) {
                tsidOrd = tsids.ordValue();
            } else if (tsidOrd != tsids.ordValue()) {
                tsidOrd = tsids.ordValue();
                return true;
            }
            return false;
        }
```
the tsidOrd init value is 0, But the first tsidOrd value of this query is 1. So It pop the second segment unexpected.

### Logs (if relevant)

_No response_
server/src/test/java/org/elasticsearch/search/aggregations/timeseries/TimeSeriesIndexSearcherTests.java
assertTrue(indexer.awaitTermination(30, TimeUnit.SECONDS));
        iw.close();
        IndexReader reader = DirectoryReader.open(dir);
        IndexSearcher searcher = new IndexSearcher(reader);
        TimeSeriesIndexSearcher indexSearcher = new TimeSeriesIndexSearcher(searcher, List.of());
        BucketCollector collector = new BucketCollector() {
            BytesRef currentTSID = null;
            long currentTimestamp = 0;
            long total = 0;
            @Override
            public LeafBucketCollector getLeafCollector(AggregationExecutionContext aggCtx) throws IOException {
                SortedDocValues tsid = DocValues.getSorted(aggCtx.getLeafReaderContext().reader(), TimeSeriesIdFieldMapper.NAME);
                NumericDocValues timestamp = DocValues.getNumeric(
                    aggCtx.getLeafReaderContext().reader(),
                    DataStream.TimestampField.FIXED_TIMESTAMP_FIELD
                );
                return new LeafBucketCollector() {
                    @Override
                    public void collect(int doc, long owningBucketOrd) throws IOException {
                        assertTrue(tsid.advanceExact(doc));
                        assertTrue(timestamp.advanceExact(doc));
                        BytesRef latestTSID = tsid.lookupOrd(tsid.ordValue());
                        long latestTimestamp = timestamp.longValue();
                        if (currentTSID != null) {
                            assertTrue(
                                currentTSID + "->" + latestTSID.utf8ToString(),
                                tsidReverse ? latestTSID.compareTo(currentTSID) <= 0 : latestTSID.compareTo(currentTSID) >= 0
                            );
                            if (latestTSID.equals(currentTSID)) {
                                assertTrue(