Malicious search protect release notes
authorMike Rylander <mrylander@gmail.com>
Tue, 21 Feb 2023 21:46:19 +0000 (16:46 -0500)
committerJason Boyer <JBoyer@equinoxOLI.org>
Wed, 17 May 2023 16:14:03 +0000 (12:14 -0400)
Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Jason Boyer <JBoyer@equinoxOLI.org>

docs/RELEASE_NOTES_NEXT/Architecture/Malicious-search-protection.adoc [new file with mode: 0644]

diff --git a/docs/RELEASE_NOTES_NEXT/Architecture/Malicious-search-protection.adoc b/docs/RELEASE_NOTES_NEXT/Architecture/Malicious-search-protection.adoc
new file mode 100644 (file)
index 0000000..de67f38
--- /dev/null
@@ -0,0 +1,23 @@
+== Malicious Search Protection ==
+
+Evergreen sometimes sees some "novel" query strings in the wild that
+cause the search backend to time out or worse.  These are sometimes
+malicious and sometimes accidental, but the effect on users is the
+same.
+
+The changes here improve query compilation in several respects in order
+to reduce the chances of an overly complex query causing problems for
+the search subsystem.
+
+More work is done up front to simplify and combine parts of the
+resulting SQL, allowing more work to be done closer to the data.
+This change allows Evergreen to handle many more tested or chained
+boolean expressions, and negated terms are now handled directly in
+line with other adjacent terms. Phrases (exact matches) are now
+searched for using Postgres' adjacency tsearch operator.
+
+All of these changes work together to improve performance by getting
+more search work done in fewer database operations while protecting
+against certain query constructs that have caused problems in the
+past.
+