All three number rows within a partition and they disagree about ties, which is invisible in test data where nothing ties and obvious in production where everything does.…
from=10000&size=10 makes every shard produce 10,010 hits and the coordinating node sort 50,050 of them to return ten. The cost grows with the offset, which is why there…
The tabular EXPLAIN says which index was used and not how expensive the optimiser thought each option was, which is the information you want when it chose one…
Covering indexes are usually explained in terms of avoiding a row lookup. The other half is that an index is already ordered, so a sort matching the index…
Reads moved to a replica and checkout started showing empty carts. Read-after-write, sticky connections, and measuring the lag rather than assuming it.
Expressing “index this exactly, do not tokenise it” used to be “type”: “string”, “index”: “not_analyzed”. From 5.0 the string type is split in two and the intent is…
Every clause in a query context computes a relevance score, including the ones that are yes-or-no questions — in stock, in this category, under this price. Scoring them…
Finding out what queries a request actually ran means either a package, a debug bar that changes the page, or the listener that has been in the framework…
EXPLAIN says what the optimiser chose. It does not say why, so when a perfectly good index is ignored there is nothing to read. The optimizer trace is…