diff --git a/components/Nav/Navbar.vue b/components/Nav/Navbar.vue
index ae276b8b8512ef8e66888151db119552ea3884c0..e5a879a612b4b49c8d90009a22ec15c49ed4fc34 100644
--- a/components/Nav/Navbar.vue
+++ b/components/Nav/Navbar.vue
@@ -32,7 +32,7 @@ watchEffect(() => {
 const sections = ref([
   {
     id: "webservice",
-    label: "Web service",
+    label: "Webservice",
     href: runtimeConfig.public.defenseFinderWebservice,
   },
   { id: "wiki", label: "Wiki", to: '/', },
diff --git a/components/ServerDbTable.vue b/components/ServerDbTable.vue
index f66ae473f611a0fe879679c1414a9ab3adbde25c..940b5ec7050dda6c28fc8c6af5de12a2a2f6dd36 100644
--- a/components/ServerDbTable.vue
+++ b/components/ServerDbTable.vue
@@ -37,7 +37,7 @@ export interface AutocompleteMeiliFacetProps {
 export interface Props {
     title?: string
     sortBy?: SortItem[]
-    numericalFilters?: MaybeRef<string | undefined>
+    numericalFilters?: MaybeRef<string[] | undefined>
     dataTableServerProps: Record<string, any>
     columnsToDownload?: MaybeRef<string[] | undefined>
     autocompleteMeiliFacetsProps: AutocompleteMeiliFacetProps
@@ -170,7 +170,7 @@ const computedFilterStr = computed(() => {
 })
 
 
-const { arrayFilters: computedFilter } = useMeiliFilters(msFilterCompo)
+const { arrayFilters: computedFilter } = useMeiliFilters(msFilterCompo, toRef(props.numericalFilters))
 // const computedFilter = computed(() => {
 //     const toValFilters = toValue(msFilterCompo)
 //     if (toValFilters !== undefined && toValFilters.length > 0) {
@@ -180,6 +180,7 @@ const { arrayFilters: computedFilter } = useMeiliFilters(msFilterCompo)
 
 
 watch(computedFilter, () => {
+    console.log(toValue(computedFilter))
     if (toValue(isValidFilters) && (toValue(computedFilter) !== undefined || toValue(filterInputValues) === null)) {
         searchOrFilter()
         emitRefreshRes()
@@ -299,7 +300,7 @@ function focusedOrBlur(isFocused: boolean) {
 </script>
 <template>
     <v-card flat color="transparent">
-            <slot name="numerical-filters" :search="throttleSearch"></slot>
+        <slot name="numerical-filters" :search="throttleSearch"></slot>
         <v-data-table-server v-if="!msError" v-model:page="page" color="primary" v-bind="dataTableServerProps"
             v-model:items-per-page="hitsPerPage" v-model:sortBy="sortByRef" v-model:expanded="expanded" fixed-header
             :loading="loading" :items="msResult?.hits ?? []" :items-length="totalHits" density="compact"
diff --git a/components/content/StructureDb.vue b/components/content/StructureDb.vue
index 443068c9e6f90fbd0141444cd7a84b8699d78f73..12243861f58d75bed607ac4cf0117f49bf0e1b59 100644
--- a/components/content/StructureDb.vue
+++ b/components/content/StructureDb.vue
@@ -93,9 +93,15 @@ const { range: plddtsRange, stringifyFilter: plddtsFilter, reset: plddtsReset }
 const { range: iptmRange, stringifyFilter: iptmFilter, reset: iptmReset } = useNumericalFilter("iptm+ptm", 0, 1)
 const { range: pdockqRange, stringifyFilter: pdockqFilter, reset: pdockqReset } = useNumericalFilter("pDockQ", 0, 1)
 
+
+function isString(item: Ref<string | undefined>): item is Ref<string> {
+    return toValue(item) !== undefined
+
+}
+
 const numericalFilters = computed(() => {
-    const listFilters = [plddtsFilter, iptmFilter, pdockqFilter].map(f => toValue(f)).filter(f => f !== undefined)
-    return listFilters.length > 0 ? listFilters.join(" AND ") : undefined
+    const listFilters = [plddtsFilter, iptmFilter, pdockqFilter].filter(isString).map(f => toValue(f))
+    return listFilters.length > 0 ? listFilters : undefined
 })
 
 const defaultDataTableServerProps = ref({
diff --git a/composables/useMeiliFilters.ts b/composables/useMeiliFilters.ts
index e56dd7cb679cdce6bfb5f0eea2648f0f22075150..f88f26818f4c6480030c7123d7b5a5a31f2b55ac 100644
--- a/composables/useMeiliFilters.ts
+++ b/composables/useMeiliFilters.ts
@@ -1,10 +1,16 @@
 import type { FilterItem } from '@/components/AutocompleteMeiliFacets.vue'
+import { filter } from '@observablehq/plot'
+import type { Filter } from "meilisearch"
 
-export function useMeiliFilters(filters: MaybeRef<FilterItem[] | undefined>) {
+export function useMeiliFilters(filters: MaybeRef<FilterItem[] | undefined>, numericalFilters: MaybeRef<string[] | undefined>) {
 
 
-  const arrayFilters = computed(() => {
+  const arrayFilters: ComputedRef<Filter | undefined> = computed(() => {
+    console.log("dans le computed de useMeilisFilter")
     const toValFilters = toValue(filters)
+    const toValNumericalFilter = toValue(numericalFilters)
+    console.log(toValNumericalFilter)
+    let categoricalFilters: FilterItem[] | undefined = undefined
     if (toValFilters !== undefined && toValFilters.length >= 3) {
       const cachedFilters = [...toValFilters]
 
@@ -55,11 +61,31 @@ export function useMeiliFilters(filters: MaybeRef<FilterItem[] | undefined>) {
         }
         return acc
       }, [])
-      return arrayFilters
+      categoricalFilters = arrayFilters
+    }
+
+    function isFilterItem(item: FilterItem[] | undefined): item is FilterItem[] {
+      return item !== undefined
 
-    } else {
-      return undefined
     }
+    console.log(categoricalFilters)
+    const filterItemArray = [categoricalFilters, toValNumericalFilter].filter(isFilterItem).reduce((acc, curr) => [...acc, ...curr], [])
+    console.log(filterItemArray)
+    const returnArr = filterItemArray.reduce<FilterItem[] | undefined>((acc, curr) => {
+      const toValCurr = toValue(curr)
+      if (toValCurr === undefined) {
+        return acc
+      }
+      else {
+        if (acc !== undefined) {
+          return [...acc, ...toValCurr]
+        }
+        else { return [...toValCurr] }
+      }
+    }, undefined)
+    console.log(returnArr)
+    
+    return returnArr
   })
 
   return { arrayFilters }
diff --git a/composables/useNumericalfilter.ts b/composables/useNumericalfilter.ts
index 9ee97d80a4239e558dfdea1e57e563cc500519af..8f776e3cc93168fa567c26cf1b48621ad100b576 100644
--- a/composables/useNumericalfilter.ts
+++ b/composables/useNumericalfilter.ts
@@ -6,17 +6,11 @@ export function useNumericalFilter(
 
 
     const range: Ref<[number, number]> = ref([toValue(min), toValue(max)])
-
-
-
-
-    const stringifyFilter: Ref<string | undefined> = ref(`${toValue(id)} ${toValue(min)} TO ${toValue(max)}`)
+    const stringifyFilter: Ref<string | undefined> = ref(undefined)
 
 
 
     watchEffect(() => {
-        console.log("watch reange")
-        console.log(range.value)
         if (range.value[0] === toValue(min) && range.value[1] === toValue(max)) {
             stringifyFilter.value = undefined
         } else {