diff --git a/source/components/datatable/filter.mjs b/source/components/datatable/filter.mjs
index e268d4c877572486cdf99327ac5cd2029c06c9f3..aa73a5161bcdb6e54d7526ed00a9c6241cdff3f1 100644
--- a/source/components/datatable/filter.mjs
+++ b/source/components/datatable/filter.mjs
@@ -242,6 +242,7 @@ class Filter extends CustomElement {
 	 * @property {Object} features Feature definitions
 	 * @property {boolean} features.storedConfig Stored configuration, this replaces the setting `storedConfig.enabled` @since 3.97.0
 	 * @property {boolean} features.autoFilter Auto filter @since 3.100.0
+	 * @property {boolean} features.preventSameQuery Prevent same query @since 3.103.0
 	 * @property {Object} storedConfig Stored configuration
 	 * @property {boolean} storedConfig.enabled The store has been enabled, this option will no longer have any effect. @deprecated 20250101
 	 * @property {string} storedConfig.selector Selector
@@ -277,6 +278,7 @@ class Filter extends CustomElement {
 			features: {
 				storedConfig: false,
 				autoFilter: true,
+				preventSameQuery: false,
 			},
 
 			storedConfig: {
@@ -1061,7 +1063,8 @@ function doSearch({ showEffect } = { showEffect: true }) {
 				return Promise.reject(new Error(msg));
 			}
 
-			if (buildQuery === this.getOption("query")) {
+			if (this.getOption("features.preventSameQuery") &&
+				buildQuery === this.getOption("query")) {
 				const msg = this.getOption("labels.query-not-changed");
 
 				if (showEffect) {