Ontwerp een geavanceerde Typesense query voor complexe zoekscenario's
description
Met deze prompt kan ik een krachtige Typesense zoekquery creëren die complexe filters en facetnavigatie integreert, wat resulteert in relevantere en beter gestructureerde zoekresultaten. Dit lost problemen op waarbij standaard zoekopdrachten tekortschieten en biedt maatwerk voor specifieke zoekbehoeften, wat beter is dan generieke oplossingen.
prompt
Help me een geavanceerde Typesense zoekquery te ontwerpen die complexe filters, rangschikkingscriteria en facetnavigatie combineert. Mijn zoekscenario beschrijv ...
try_prompt
generate_helper
disclaimerOnPageApi
tags
ai_answers
provider: openai
model: gpt-4.1-nano
Hier is een voorbeeld van een geavanceerde Typesense-zoekquery die complexe filters, sortering en facetnavigatie combineert voor jouw productcatalogus:
```json
{
"q": "*",
"query_by": "naam",
"filter_by": "prijs: [10..100] && voorraadstatus: 'op voorraad'",
"sort_by": "prijs:asc",
"facet_by": "categorie",
"max_facet_values": 10
}
```
Uitleg:
- **q**: "*" zoekt naar alle producten.
- **query_by**: "naam" geeft aan dat we zoeken op productnamen, kun je aanpassen naar andere velden indien gewenst.
- **filter_by**: Hiermee filter je producten met prijs tussen 10 en 100 en die op voorraad zijn.
- **sort_by**: Sorteer de resultaten op prijs in oplopende volgorde.
- **facet_by**: Hiermee krijg je facetinformatie over de categorieën, zodat je navigatie kunt bieden.
- **max_facet_values**: Beperkt het aantal getoonde facet-opties.
Voor complexere scenario's kun je filters uitbreiden en combineren, bijvoorbeeld meerdere attributen of dynamische filteropties.
provider: deepseek
model: deepseek-chat
Hier is een geavanceerde Typesense query voor uw productcatalogus:
```typescript
const searchParameters = {
q: '*',
query_by: 'naam,categorie',
filter_by: 'prijs:[10..100] AND voorraadstatus:true',
sort_by: 'prijs:asc', // Of uw gewenste sorteervolgorde
facet_by: 'categorie,prijs',
max_facet_values: 50,
per_page: 24,
page: 1
};
// Voorbeeld met extra geavanceerde opties:
const advancedSearch = {
q: '*',
query_by: 'naam,categorie,attributen',
filter_by: '(prijs:[10..100] AND voorraadstatus:true) AND categorie:[elektronica,boeken]',
sort_by: 'prijs:asc,_text_match:desc',
facet_by: 'categorie,prijs,voorraadstatus',
facet_query: [
'categorie:elektronica AND prijs:[50..100]',
'categorie:boeken AND prijs:[10..30]'
],
max_facet_values: 100,
per_page: 36,
page: 1
};
```
Belangrijke kenmerken:
**Filtering:**
- `prijs:[10..100]` - Prijsrange filter
- `voorraadstatus:true` - Alleen beschikbare producten
- Combineer filters met `AND`/`OR`
**Facetten:**
- `facet_by` voor navigatiefacetten
- `facet_query` voor vooraf gedefinieerde facetfilters
**Sortering:**
- Meerdere criteria mogelijk (bijv. prijs + relevantie)
- Gebruik `:asc` of `:desc` voor richting
**Extra tips:**
- Gebruik synoniemen voor betere zoekresultaten
- Implementeer typotolerantie met `num_typos`
- Overweeg `exhaustive_search` voor nauwkeurige facetten
Zorg dat uw schema de juiste veldtypes heeft (prijs als `float`, voorraadstatus als `bool`).