Pour exploiter les fonctionnalités algorithmiques d'OpenSearch dans vos requêtes de recherche, transmettez les paramètres personnalisés requis par chaque module d'algorithme via le SDK pour Java. Cette rubrique répertorie les paramètres propres à chaque module et illustre leur configuration dans votre code.
Paramètres et emplacements de configuration
Les modules d'algorithme OpenSearch lisent leurs entrées depuis des paramètres personnalisés que vous définissez sur la requête de recherche. Chaque requête présentée ici suit le même schéma : créez un objet SearchParams, insérez les paramètres dans une Map<String, String>, appliquez cette mappe en appelant setCustomParam, puis exécutez la requête avec searcherClient.execute. Seules les entrées ajoutées à la mappe varient d'un module à l'autre.
Le tableau suivant décrit les paramètres personnalisés utilisés par les modules d'algorithme ainsi que la requête associée à chacun d'eux.
| Paramètre | Description | Requête |
raw_query |
Chaîne de requête de recherche originale. | Requête de recherche, en tant que paramètre personnalisé. |
user_id |
Identifiant de l'utilisateur. | Requête de recherche en tant que paramètre personnalisé, ou requête de suggestion déroulante via SuggestParams. |
from_request_id |
ID de la requête de recherche précédente. | Requête de recherche, en tant que paramètre personnalisé. |
Deux cas s'écartent de ce modèle. Pour activer les termes de recherche historiques, définissez user_id sur la requête de suggestion déroulante via SuggestParams plutôt que sur la requête de recherche. Le plug-in Cava ne prend aucun paramètre personnalisé : vous le configurez sur un objet Rank.
Tous les exemples de code de cette rubrique sont du pseudocode. Les lignes affichées sous la forme ... représentent du code omis, y compris celui qui crée les objets config et searcherClient.
Analyse des requêtes
L'analyse des requêtes alimente la vectorisation de texte et la reconnaissance d'entités nommées (NER). Le tableau ci-dessous détaille le paramètre personnalisé requis par l'analyse des requêtes.
| Paramètre | Obligatoire | Description |
raw_query |
Oui | Utilisé par les modèles de vectorisation de texte et de NER. |
Définissez raw_query dans la requête de recherche :

...
// Create a SearchParams object.
SearchParams searchParams = new SearchParams(config);
searchParams.setQuery("default:'OpenSearch'");
// Set the raw_query parameter.
Map<String, String> customParam = new HashMap<>();
customParam.put("raw_query", "OpenSearch");
searchParams.setCustomParam(customParam);
// Run the query and return the results as a SearchResult object.
SearchResult execute = searcherClient.execute(searchParams);
...
Prédiction de catégorie
La prédiction de catégorie utilise raw_query pour entraîner des modèles algorithmiques tels que les modèles de prédiction de catégorie. Le tableau suivant présente le paramètre personnalisé nécessaire à la prédiction de catégorie.
| Paramètre | Obligatoire | Description |
raw_query |
Oui | Utilisé pour entraîner les modèles de prédiction de catégorie. |
Définissez raw_query dans la requête de recherche :

...
// Create a SearchParams object.
SearchParams searchParams = new SearchParams(config);
searchParams.setQuery("default:'apple'");
// Set the raw_query parameter.
Map<String, String> customParam = new HashMap<>();
customParam.put("raw_query", "apple");
searchParams.setCustomParam(customParam);
// Run the query and return the results as a SearchResult object.
SearchResult execute = searcherClient.execute(searchParams);
...
Suggestions déroulantes
Les suggestions déroulantes exploitent trois paramètres personnalisés. Transmettez-les conjointement selon les fonctionnalités que vous souhaitez activer.
| Paramètre | Obligatoire | Description |
raw_query |
Oui | Active les requêtes fréquentes dans les suggestions déroulantes. |
from_request_id |
Non | Optimise le modèle de classement des suggestions déroulantes et permet le suivi des métriques de recherche guidée par suggestion. |
user_id |
Non | Transmettez-le dans la requête de recherche conjointement avec raw_query et from_request_id pour activer le tri intelligent. Transmettez-le dans la requête de suggestion déroulante via SuggestParams pour activer les termes de recherche historiques. |
Tri intelligent
Pour activer le tri intelligent, transmettez raw_query, user_id et from_request_id dans la requête de recherche :

...
// Create a SearchParams object.
SearchParams searchParams = new SearchParams(config);
searchParams.setQuery("default:'apple'"); // driven by drop-down suggestion
// Set raw_query, user_id, and from_request_id to enable intelligent sorting.
Map<String, String> customParam = new HashMap<>();
customParam.put("raw_query", "apple");
customParam.put("user_id", "12345");
customParam.put("from_request_id", "159851481919726888064081");
searchParams.setCustomParam(customParam);
// Run the query and return the results as a SearchResult object.
SearchResult execute = searcherClient.execute(searchParams);
...
Termes de recherche historiques
Les termes de recherche historiques reposent sur deux requêtes : transmettez raw_query dans la requête de recherche et user_id dans la requête de suggestion déroulante via SuggestParams.
...
// Create a SearchParams object.
SearchParams searchParams = new SearchParams(config);
searchParams.setQuery("default:'apple'"); // driven by drop-down suggestion
// Set raw_query in the search request.
Map<String, String> customParam = new HashMap<>();
customParam.put("raw_query", "apple");
searchParams.setCustomParam(customParam);
// Run the query and return the results as a SearchResult object.
SearchResult execute = searcherClient.execute(searchParams);
...
// Set user_id in the drop-down suggestion request to enable historical search terms.
SuggestParams suggestParams = new SuggestParams();
suggestParams.setUserId("12345");
Recherches populaires et indices
Les recherches populaires et les indices utilisent raw_query pour entraîner des modèles algorithmiques, tels que les modèles de recherche populaire et les modèles d'indices. Transmettez from_request_id et user_id afin d'améliorer le classement et de collecter des métriques de guidage.
| Paramètre | Obligatoire | Description |
raw_query |
Oui | Utilisé pour entraîner les modèles de recherche populaire et d'indices. |
from_request_id |
Non | Améliore le classement des recherches populaires et des indices, et permet le suivi des métriques de recherche guidée par ces derniers. |
user_id |
Non | Transmettez-le conjointement avec from_request_id pour permettre le suivi des métriques de recherche guidée par les recherches populaires et les indices. |
Définissez les paramètres dans la requête de recherche :

...
// Create a SearchParams object.
SearchParams searchParams = new SearchParams(config);
searchParams.setQuery("default:'apple'");
// Set raw_query, user_id, and from_request_id.
Map<String, String> customParam = new HashMap<>();
customParam.put("raw_query", "apple");
customParam.put("user_id", "12345");
customParam.put("from_request_id", "160851481919726888064913");
searchParams.setCustomParam(customParam);
// Run the query and return the results as a SearchResult object.
SearchResult execute = searcherClient.execute(searchParams);
...
Plug-in Cava
Le plug-in Cava applique une politique de classement personnalisée en deuxième phase via un script Cava. Contrairement aux autres modules d'algorithme abordés ici, il n'accepte aucun paramètre personnalisé : définissez le nom du script et le type de tri sur un objet Rank, puis appliquez cet objet à la requête de recherche.
| Paramètre | Obligatoire | Description |
| Nom du script Cava | Oui | Nom du script Cava à invoquer pour le classement en deuxième phase. Définissez-le en appelant setSecondRankName. |
| Type de tri | Oui | Méthode de classement. Définissez-le sur RankType.CAVA_SCRIPT en appelant setSecondRankType pour utiliser le classement basé sur un script Cava. |
Configurez la politique de classement et appliquez-la à la requête de recherche :

...
// Create a SearchParams object.
SearchParams searchParams = new SearchParams(config);
...
// Create a Rank object and configure Cava script-based ranking.
Rank rank = new Rank();
rank.setSecondRankName("test_cava");
rank.setSecondRankType(RankType.CAVA_SCRIPT);
// Apply the ranking policy to the search request.
searchParams.setRank(rank);