### 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
IndexWriterConfig iwc = newIndexWriterConfig();
        boolean tsidReverse = TIME_SERIES_SORT[0].getOrder() == SortOrder.DESC;
        boolean timestampReverse = TIME_SERIES_SORT[1].getOrder() == SortOrder.DESC;
        Sort sort = new Sort(
            new SortField(TimeSeriesIdFieldMapper.NAME, SortField.Type.STRING, tsidReverse),
            new SortField(DataStream.TimestampField.FIXED_TIMESTAMP_FIELD, SortField.Type.LONG, timestampReverse)
        );
        iwc.setIndexSort(sort);
        RandomIndexWriter iw = new RandomIndexWriter(random(), dir, iwc);
        AtomicInteger clock = new AtomicInteger(0);
        final int THREADS = 5;
        ExecutorService indexer = Executors.newFixedThreadPool(THREADS);
        for (int i = 0; i < THREADS; i++) {
            indexer.submit(() -> {
                Document doc = new Document();
                for (int j = 0; j < 500; j++) {
                    String tsid = "tsid" + randomIntBetween(0, 30);
                    long time = clock.addAndGet(randomIntBetween(0, 10));
                    doc.clear();
                    doc.add(new SortedDocValuesField(TimeSeriesIdFieldMapper.NAME, new BytesRef(tsid)));
                    doc.add(new NumericDocValuesField(DataStream.TimestampField.FIXED_TIMESTAMP_FIELD, time));
                    try {
                        iw.addDocument(doc);
                    } catch (IOException e) {
                        throw new UncheckedIOException(e);
                    }
                }
            });
        }
        indexer.shutdown();