Ontwikkel een Typesense Zoekopdracht voor Meertalige en Lokalisatie-ondersteuning
description
Met deze prompt kun je een krachtige Typesense zoekopdracht creëren die meertalige datasets en locatiegegevens integreert, waardoor je zoekervaring relevanter en gebruiksvriendelijker wordt voor internationale gebruikers. Het lost uitdagingen op zoals het onderscheiden van taalvoorkeuren en het bieden van nauwkeurige, locatiegerichte zoekresultaten, wat standaard zoekinstellingen vaak niet ondersteunen.
prompt
Help me een Typesense zoekopdracht te ontwerpen die meertalige zoekopdrachten en lokalisatie ondersteunt. Mijn talen: <voeg de talen toe die je wilt onderst ...
try_prompt
generate_helper
disclaimerOnPageApi
tags
ai_answers
provider: openai
model: gpt-4.1-nano
Natuurlijk! Hier is een voorbeeld van een Typesense-zoekopdracht die meertalige zoekopdrachten en lokalisatie ondersteunt, inclusief prioriteit voor resultaten binnen 50 km van de gebruiker:
```json
{
"q": "zoekterm", // vervang door je zoekwoord
"query_by": "naam,nederlands,engels,frans", // velden waarop gezocht wordt
"filter_by": "", // voeg indien nodig filters toe
"sort_by": "_text_match desc, afstand asc",
"search_parameters": {
"locale": "nl", // of 'en', 'fr', afhankelijk van de taalvoorkeur van de gebruiker
"per_page": 10,
"vector_query": false,
"include_fields": "naam,nederlands,engels,frans,locatie",
"vector_search": false,
"filter_by": "afstand:[0..50]",
"geo_point": {
"lat": gebruiker_latitude,
"lng": gebruiker_longitude
},
"geo_distance": 50,
"ranking": [
{
"name": "_text_match",
"sort": "desc"
},
{
"name": "afstand",
"sort": "asc"
}
]
}
}
```
**Uitleg:**
- `query_by`: bevat alle meertalige velden zodat zoekopdrachten in meerdere talen worden ondersteund.
- `locale`: stel deze in op de taalvoorkeur van de gebruiker voor betere tekstmatching.
- `geo_point` en `geo_distance`: zorgen dat resultaten binnen 50 km van de gebruiker hoger scoren.
- `sort_by`: prioriteert resultaten met betere tekstmatch en kortere afstand.
**Aanpassingen:**
- Vervang `"zoekterm"` door de invoer van de gebruiker.
- Vul `gebruiker_latitude` en `gebruiker_longitude` in met de locatiegegevens van de gebruiker.
- Pas de `query_by` velden aan op basis van je dataset.
Wil je dat ik een volledige codevoorbeeld of een specifieke implementatie in bijvoorbeeld JavaScript of Python voor je maak?
provider: deepseek
model: deepseek-chat
Ik help je graag een Typesense zoekopdracht te ontwerpen voor meertalige ondersteuning (Nederlands, Engels, Frans) met lokalisatie.
**Basisconfiguratie schema:**
```json
{
"name": "jouw_collectie",
"fields": [
{
"name": "id",
"type": "string"
},
{
"name": "naam",
"type": "string",
"locale": "nl" // Nederlands
},
{
"name": "name",
"type": "string",
"locale": "en" // Engels
},
{
"name": "nom",
"type": "string",
"locale": "fr" // Frans
},
{
"name": "locatie",
"type": "geopoint"
},
{
"name": "categorie",
"type": "string"
}
],
"default_sorting_field": "_text_match"
}
```
**Zoekopdracht met lokalisatie en meertalige ondersteuning:**
```javascript
const searchParameters = {
q: "zoekterm",
query_by: [
"naam",
"name",
"nom",
"categorie"
],
sort_by: [
"location(_geolocatie:51.5074,0.1278,50km):desc(_text_match)",
"_text_match:desc"
],
filter_by: "locatie:([51.5074, 0.1278], 50 km)",
prioritize_exact_match: true,
use_cache: true
};
```
**Belangrijke parameters uitgelegd:**
1. **Meertalige velden**: Gebruik aparte velden met `locale` instelling per taal
2. **Geografische filtering**: `filter_by` met `locatie:(coordinaten, radius)`
3. **Sortering**: `sort_by` met `location()` voor locatieprioritering
4. **Multi-field zoeken**: `query_by` bevat alle taalvelden
**Aanbevolen optimalisaties:**
1. Creëer een samengesteld veld voor fallback-zoekopdrachten:
```json
{
"name": "alle_talen",
"type": "string[]",
"locale": "multi"
}
```
2. Gebruik tokenisatie-instellingen per taal:
```json
{
"name": "naam",
"type": "string",
"locale": "nl",
"token_separators": ["-"],
"symbols_to_index": ["@"]
}
```
3. Voor betere relevantie bij locaties:
```javascript
const searchParameters = {
// ... andere parameters
prioritize_distance_multiplier: 2,
prioritize_num_matching_fields: true
};
```
**Volledig voorbeeld API call:**
```javascript
// Gebruiker locatie: Amsterdam (52.3676, 4.9041)
fetch('http://localhost:8108/collections/jouw_collectie/documents/search', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-TYPESENSE-API-KEY': 'jouw_api_key'
},
body: JSON.stringify({
q: 'restaurant',
query_by: 'naam,name,nom,categorie',
filter_by: 'locatie:([52.3676, 4.9041], 50 km)',
sort_by: 'location(locatie:52.3676,4.9041,50km):desc(_text_match)',
prioritize_exact_match: true
})
})
```
Dit ontwerp zorgt voor:
- Meertalige zoekresultaten in NL/EN/FR
- Prioritering van resultaten binnen 50km
- Juiste tokenisatie per taal
- Fallback-ondersteuning tussen talen
- Optimale relevantie-scores voor locatiegebonden zoekopdrachten