Une requête par terme avec le SDK Tablestore pour Java identifie les valeurs de champ ou les jetons correspondant exactement au terme de recherche et renvoie les lignes correspondantes ou leur nombre total.
Prérequis
Installez le SDK Tablestore pour Java et initialisez le client.
Description de la fonctionnalité
Une requête par terme identifie le contenu d'un champ spécifié qui correspond exactement au terme de recherche. Pour les champs non textuels tels que les champs Keyword et Long, la valeur entière du champ doit correspondre exactement au terme de recherche. Pour un champ Text (voir Types de chaîne), la ligne correspond si l'un des jetons produits par l'analyseur correspond exactement au terme de recherche. Le terme de recherche lui-même n'est pas tokenisé.
Les jetons générés pour un champ Text peuvent varier en fonction de la configuration de l'analyseur, des mises à jour des algorithmes et de l'usage linguistique. Évitez d'utiliser une requête par terme pour faire correspondre la chaîne d'origine entière d'un champ Text. Utilisez plutôt une colonne virtuelle pour mapper le champ source vers le type Keyword, puis interrogez la colonne virtuelle.
Pour appeler search, définissez le type de requête sur TermQuery et utilisez SearchQuery pour configurer le nombre de lignes renvoyées, le suivi du nombre total et d'autres comportements de requête courants.
SearchResponse search(SearchRequest request)
L'exemple suivant interroge les lignes dont la valeur du champ category correspond exactement à books et renvoie jusqu'à 10 lignes ainsi que le nombre total de lignes correspondantes.
String tableName = "example_table";
String indexName = "example_index";
TermQuery termQuery = new TermQuery();
termQuery.setFieldName("category");
termQuery.setTerm(ColumnValue.fromString("books"));
SearchQuery searchQuery = new SearchQuery();
searchQuery.setQuery(termQuery);
searchQuery.setLimit(10);
searchQuery.setTrackTotalCount(SearchQuery.TRACK_TOTAL_COUNT);
SearchRequest request = new SearchRequest(tableName, indexName, searchQuery);
SearchRequest.ColumnsToGet columnsToGet = new SearchRequest.ColumnsToGet();
columnsToGet.setReturnAll(true);
request.setColumnsToGet(columnsToGet);
SearchResponse response = client.search(request);
System.out.println(response.getTotalCount());
System.out.println(response.getRows());
Paramètres
Demande de recherche
request est un objet SearchRequest qui contient les paramètres suivants.
|
Nom |
Type |
Description |
|
tableName (obligatoire) |
String |
Nom de la table. |
|
indexName (obligatoire) |
String |
Nom de l'index de recherche. |
|
searchQuery (obligatoire) |
SearchQuery |
Condition de requête et paramètres de requête courants. |
|
columnsToGet (facultatif) |
SearchRequest.ColumnsToGet |
Paramètres des colonnes renvoyées. Si vous omettez ce paramètre, seules les colonnes de clé primaire sont renvoyées. |
|
timeoutInMillisecond (facultatif) |
int |
Délai d'expiration de la requête au niveau de la demande, en millisecondes. La valeur par défaut est |
|
routingValues (facultatif) |
|
Valeurs de clé primaire pour les champs de routage personnalisé. Omettez ce paramètre si l'index n'utilise pas le routage personnalisé. |
Paramètres de requête
request.searchQuery est un objet SearchQuery qui contient les paramètres suivants.
|
Nom |
Type |
Description |
|
query (obligatoire) |
Query |
Condition de requête. Définissez ce paramètre sur |
|
offset (facultatif) |
Integer |
Position de départ de la requête. |
|
limit (facultatif) |
Integer |
Nombre maximal de lignes à renvoyer. Définissez ce paramètre sur |
|
highlight (facultatif) |
Highlight |
Paramètres de résumé et de mise en surbrillance pour les champs Text. Pour plus de détails sur la configuration, voir Résumé et mise en surbrillance. |
|
collapse (facultatif) |
Collapse |
Paramètres de regroupement des résultats, qui permettent de dédupliquer les résultats selon un champ spécifié. Pour plus de détails sur la configuration, voir Regrouper les résultats de requête. |
|
sort (facultatif) |
Sort |
Ordre de tri des résultats. Pour plus de détails sur la configuration, voir Trier et paginer les résultats. |
|
trackTotalCount (facultatif) |
int |
Nombre maximal attendu de lignes correspondantes à comptabiliser. La valeur par défaut est |
|
filter (facultatif) |
SearchFilter |
Filtre appliqué aux résultats de |
|
aggregationList (facultatif) |
|
Paramètres d'agrégation. Pour plus de détails sur la configuration, voir Agrégation. |
|
groupByList (facultatif) |
|
Paramètres de regroupement. Pour plus de détails sur la configuration, voir Agrégation. |
|
token (facultatif) |
byte[] |
Jeton de pagination. Définissez ce paramètre sur la valeur |
Condition de requête
request.searchQuery.query est un objet TermQuery qui contient les paramètres suivants.
|
Nom |
Type |
Description |
|
fieldName (obligatoire) |
String |
Nom du champ indexé à interroger. |
|
term (obligatoire) |
ColumnValue |
Terme de recherche. Pour un champ Text, la valeur entière est utilisée comme un seul terme et n'est pas tokenisée. |
|
weight (facultatif) |
float |
Poids de pertinence de la condition de requête. La valeur doit être un nombre à virgule flottante positif. Une valeur plus élevée accroît la contribution de la condition de requête au score de pertinence BM25. Ce paramètre n'affecte ni la correspondance ni le nombre de lignes renvoyées. Il influence l'ordre des résultats uniquement lorsque |
Colonnes renvoyées
request.columnsToGet est un objet SearchRequest.ColumnsToGet qui contient les paramètres suivants.
|
Nom |
Type |
Description |
|
columns (facultatif) |
|
Colonnes d'attribut à renvoyer. Définissez ce paramètre uniquement si |
|
returnAll (facultatif) |
boolean |
Indique s'il faut renvoyer toutes les colonnes d'attribut de la table. Valeur par défaut : |
|
returnAllFromIndex (facultatif) |
boolean |
Indique s'il faut renvoyer toutes les colonnes d'attribut indexées. Valeur par défaut : |
Valeurs de retour
search renvoie un objet SearchResponse. Le tableau suivant décrit les champs principaux.
|
Nom |
Type |
Description |
|
totalCount |
long |
Nombre de lignes correspondantes. Appelez |
|
rows |
|
Lignes renvoyées par cette requête. Appelez |
|
searchHits |
|
Résultats de la requête. Appelez |
|
nextToken |
byte[] |
Jeton de la page suivante. Appelez |
|
isAllSuccess |
boolean |
Indique si toutes les partitions d'index ont été interrogées avec succès. Appelez |