For the examples they are giving the data has been distributed over 4 nodes. Each node has a secondary index but only for values on that node. The secondary index does not have all records on all nodes. So a caller wanting to search would need to send to all nodes.
Eg with just 2 nodes
Node 1 has (1,a) (2,a) (3,b)
Node 2 has (100,a) (105,c)
Node 1 has a primary index 1,2,3. And a secondary index a,a,b
Node 2 has a primary index 100,105. And a secondary index a,c
A caller wanting to search for 'c' would need to broadcast to both nodes to search the two secondary indexs.
If however you maintain a complete copy of the secondary index a,a,a,b,c somewhere you could query that index and then go directly to the target node. But this has a lot more complications in practice than you might expect.
Edit 22 June. When you try an maintain a secondary index on a third node then you have the following complications to consider.
Insert/edit operations now involve 2 or even 3 nodes so you need to implement a two phase commit protocol of some kind, or alternative schemes.
As more nodes are involved, you may find the overall reliability decreases as the MTBF is lower.
You need to consider what happens with network partitioning.
Maintainance operations might be harder. How do you effectively validate an index is correct without generating too much network traffic for example.
How will updates edit the index node? Are clients responsible for this, or do the main storage nodes update index nodes?
A good place to learn more is to review the CAP theorem, look into 2 phase commit schemes, and potentially look at some of the IEEE papers published in the distributed systems journal.