diff --git a/components/ServerDbTable.vue b/components/ServerDbTable.vue
index 30c6a2c7050c36e74ffbcc1d5b49642f878faa7e..ef87a9644e38dda97404c0996811f6e9fa543dbd 100644
--- a/components/ServerDbTable.vue
+++ b/components/ServerDbTable.vue
@@ -43,6 +43,7 @@ const filterOrSearch: Ref<FilterItem[] | string | null> = ref(null)
 const hitsPerPage: Ref<number> = ref(25)
 const limit = ref(1000)
 const filterError: Ref<string | null> = ref(null)
+const msFilter = ref(undefined)
 const page = ref(1)
 let loading = ref(false)
 
@@ -54,7 +55,7 @@ const computedTableHeight = computed(() => {
 })
 
 const isFilter = computed(() => {
-    return Array.isArray(filterOrSearch.value) && filterOrSearch.value.length % 3 === 0
+    return Array.isArray(filterOrSearch.value)
 })
 
 const msSortBy = computed(() => {
@@ -68,21 +69,23 @@ const msSortBy = computed(() => {
     } else { return undefined }
 })
 
-const msFilter = computed(() => {
-    if (isFilter.value) {
-        return filterOrSearch.value.map((it, index) => {
-            if (index >= 1 && (index + 1) % 3 === 1) {
-                return ` AND ${it.value}`
-            } else if ((index + 1) % 3 === 0) {
-                return `"${it.value}"`
-            } else {
-                return `${it.value}`
-            }
 
-        }).join("")
-    }
-    else { return undefined }
-})
+
+// const msFilter = computed(() => {
+//     if (isFilter.value) {
+//         return filterOrSearch.value.map((it, index) => {
+//             if (index >= 1 && (index + 1) % 3 === 1) {
+//                 return ` AND ${it.value}`
+//             } else if ((index + 1) % 3 === 0) {
+//                 return `"${it.value}"`
+//             } else {
+//                 return `${it.value}`
+//             }
+
+//         }).join("")
+//     }
+//     // else { return undefined }
+// })
 
 const reactiveParams = reactive({
     hitsPerPage: 25,
@@ -132,16 +135,35 @@ function clearFilterOrSearch() {
 }
 
 watch(msFilter, async (fos) => {
-    await searchOrFilter()
+    console.log("the filter change")
+    console.log(msFilter)
+    console.log(fos)
+    searchOrFilter()
     search.value = ''
 
 })
 
 watch(msResult, (newRes) => {
+    console.log("facets disti changed !!!!!!!!!!!!!")
+    console.log(msResult)
+    console.log(newRes)
     facetStore.setFacets({ facetDistribution: newRes.facetDistribution, facetStat: newRes.facetStat })
 }, { deep: true })
 
+watch(filterOrSearch, (newSoF) => {
+    if (isFilter.value && newSoF.length % 3 === 0) {
+        msFilter.value = newSoF.map((it, index) => {
+            if (index >= 1 && (index + 1) % 3 === 1) {
+                return ` AND ${it.value}`
+            } else if ((index + 1) % 3 === 0) {
+                return `"${it.value}"`
+            } else {
+                return `${it.value}`
+            }
 
+        }).join("")
+    }
+})
 const filterStep = computed(() => {
     return (Array.isArray(filterOrSearch.value) && filterOrSearch.value.length > 0) ? filterOrSearch.value?.length % 3 : null
 })
@@ -149,7 +171,6 @@ const operatorItems = ref([
     { type: "operator", value: '=', title: "is" }, { type: "operator", value: '!=', title: "is not" }
 ])
 
-
 const autocompleteItems = computed(() => {
     if (filterStep.value === null || filterStep.value === 0) {
         return props.facets.map(value => {
@@ -167,20 +188,24 @@ const autocompleteItems = computed(() => {
         // get the facet value
         if (Array.isArray(filterOrSearch.value)) {
             const { type, value } = filterOrSearch.value?.slice(-2, -1)[0]
-            return facetStore.facets?.facetDistribution?.[value] ? Object.entries(facetStore.facets.facetDistribution[value]).map(([key, val]) => {
+            console.log("compute new facets")
+            const facetDistri = facetStore.facets?.facetDistribution
+            console.log(facetDistri)
+            return facetDistri?.[value] ? Object.entries(facetDistri[value]).map(([key, val]) => {
                 return { type: "value", value: key, title: key, count: val }
             }) : []
         }
     }
 })
 
-
-
 function selectItem(item) {
     filterOrSearch.value = Array.isArray(filterOrSearch.value) ? [...filterOrSearch.value, item] : [item]
 }
 
 function deleteOneFilter(index) {
+    console.log("deleteOnefilter")
+    console.log(isFilter.value)
+    console.log(filterOrSearch)
     if (isFilter.value) {
         filterOrSearch.value?.splice(index - 2, 2)
     }
@@ -193,9 +218,6 @@ function clearSearch() {
 <template>
     <v-card flat>
         <v-toolbar>
-            <!-- <v-toolbar-title>
-                {{ title }} ({{ itemsLength }})
-            </v-toolbar-title> -->
             <v-autocomplete v-model:search="search" v-model:model-value="filterOrSearch" auto-select-first chips clearable
                 label="Search or filter results..." :items="autocompleteItems" item-value="value" item-title="title"
                 multiple return-object append-inner-icon="md:search" @click:appendInner="searchOrFilter"
@@ -206,11 +228,6 @@ function clearSearch() {
                     <v-chip v-else v-bind="props" :text="item.raw.title"></v-chip>
                 </template>
                 <template #item="{ props, item }">
-                    <!-- <pre>{{ props["v-on"] }}</pre> -->
-
-                    <!-- <pre v-for="(value, key) in props" :key="key">
-                        <span v-if="key != 'ref'">{{ key }} - {{ value }}</span>
-                    </pre> -->
                     <v-list-item v-bind="{ ...props, active: false, onClick: () => selectItem(item) }" :title="item.title"
                         :subtitle="item.raw?.count ? item.raw.count : ''" :value="props.value">