Earlier quoted context omitted.
What are some constructions you'd consider "fair"?
AEAD cipher with nonce generated from plaintext? That would have equivalent security properties except for being needlessly complicated?
$nonce = sodium_crypto_generichash($message, '', 24);
$ciphertext = $nonce . sodium_crypto_aead_xchacha20poly1305_ietf_encrypt(
$message,
$nonce,
$nonce,
$key
);
That solves the literal search problem, but none of the others.However, in my experience[1], when it comes to deterministic encryption, most PHP developers will use ECB mode, or CBC mode with a NULL IV.