# Pre-Filtering, Partial Indexes और Partitions — Vector Databases

Source: https://www.geekswithgeeks.com/hi/vector-databases/f-strategies

> Multi-tenant और metadata filters के लिए भौतिक डिज़ाइन चुनें।

## डिज़ाइन को filter से मिलाएँ

चुनाव इस पर करें कि filter कितना चयनात्मक और स्थिर है। **कुछ विशाल tenants**: **प्रति tenant partial index** (`CREATE INDEX ... USING hnsw (...) WHERE tenant = 'acme'`) या **tenant से partitioned table** हर tenant को अपना छोटा, सटीक index देती है, बनाने और रखरखाव के लिए ज़्यादा indexes की क़ीमत पर। **कई छोटे tenants**: tenant column और iterative scans वाला एक index, या प्रति tenant सटीक scan (कुछ हज़ार rows जल्दी स्कैन होती हैं)। **कम-चयनात्मक filters** (जैसे भाषा = en जो 80% rows से मेल खाती है): कुछ ज़्यादा लाकर post-filtering चलती है। **तिथि सीमाएँ**: समय से partition करें और सिर्फ़ प्रासंगिक partitions खोजें। हमेशा `EXPLAIN` और recall माप से जाँचें, क्योंकि planner का चुनाव statistics पर निर्भर है। समर्पित engine में हर filter field पर **payload index** बनाएँ और उन engines को प्राथमिकता दें जो graph traversal के दौरान filters जाँचते हैं।

## Filter डिज़ाइन cheat sheet

शुरुआती बिंदु; EXPLAIN और मापे recall से जाँचें।

```text
Filter shape                                   Good design
few very large tenants                          partial index or partition per tenant
many small tenants (< ~10k rows each)           one index + iterative scan, or exact scan per tenant
low selectivity (matches most rows)             plain index + post-filter, over-fetch a little
range by time (recent data matters)             time partitions; search only the relevant ones
hard security boundary                          row-level security / mandatory tenant predicate in every query
```

## अनुमान नहीं, plan जाँचें

Indexes या partitions बदलने के बाद EXPLAIN चलाएँ और recall दोबारा मापें। Planner के चुनाव statistics पर निर्भर हैं।

**Quiz:** कुछ बहुत बड़े tenants के लिए कौन-सा डिज़ाइन हर tenant को सटीक index देता है?

- [ ] UI में filtering
- [ ] tenant column के बिना एक index
- [ ] कोई index नहीं
- [x] प्रति tenant partial index (या partition)

*Answer:* प्रति tenant partial index (या partition). तब हर index में सिर्फ़ मेल खा सकने वाली rows होती हैं।
