| Fact | Reality |
|---|---|
| Range | 0 to 100 |
| 100 = best | Only if term is very frequent in doc, rare in collection |
| Our case | 1 match each → low score |
| Scores change | Insert/delete docs → scores shift |
| > 0 rule | CONTAINS(...) > 0 required |
| Approach | Idempotent? | Clean? | Best For |
|---|---|---|---|
CREATE INDEX IF NOT EXISTS |
No | No | MySQL/Postgres only |
EXCEPTION WHEN DUP_VAL_ON_INDEX |
No | No | Wrong error |
EXCEPTION WHEN ORA-00955 |
Yes | Yes | Quick scripts |
| Data Dictionary Check | Yes | Yes | Production, Liquibase, CI/CD |