Analizador estándar
El analizador standard es el analizador por defecto en Milvus, que se aplica automáticamente a los campos de texto si no se especifica ningún analizador. Utiliza la tokenización basada en la gramática, lo que lo hace eficaz para la mayoría de los idiomas.
El analizador standard es adecuado para los idiomas que utilizan separadores (como espacios o signos de puntuación) para delimitar las palabras. Sin embargo, lenguas como el chino, el japonés y el coreano requieren una tokenización basada en diccionarios. En estos casos, se recomienda utilizar un analizador específico de la lengua como chinese o analizadores personalizados con tokenizadores especializados (como lindera, icu) y filtros para garantizar una tokenización precisa y mejores resultados de búsqueda.
Definición
El analizador standard consta de
Tokenizador: Utiliza el tokenizador de
standardpara dividir el texto en unidades de palabras discretas basándose en reglas gramaticales. Para más información, consulte Tokenizer estándar.Filtro: Utiliza el filtro
lowercasepara convertir todos los tokens a minúsculas, lo que permite realizar búsquedas sin distinguir mayúsculas de minúsculas. Para más información, consulte Minúsculas.
La funcionalidad del analizador standard es equivalente a la siguiente configuración personalizada del analizador:
analyzer_params = {
"tokenizer": "standard",
"filter": ["lowercase"]
}
Map<String, Object> analyzerParams = new HashMap<>();
analyzerParams.put("tokenizer", "standard");
analyzerParams.put("filter", Collections.singletonList("lowercase"));
const analyzer_params = {
"tokenizer": "standard",
"filter": ["lowercase"]
};
analyzerParams := map[string]any{"tokenizer": "standard", "filter": []any{"lowercase"}}
# restful
analyzerParams='{
"tokenizer": "standard",
"filter": [
"lowercase"
]
}'
Configuración
Para aplicar el analizador standard a un campo, basta con establecer type en standard en analyzer_params, e incluir los parámetros opcionales que sean necesarios.
analyzer_params = {
"type": "standard", # Specifies the standard analyzer type
}
Map<String, Object> analyzerParams = new HashMap<>();
analyzerParams.put("type", "standard");
const analyzer_params = {
"type": "standard", // Specifies the standard analyzer type
}
analyzerParams = map[string]any{"type": "standard"}
# restful
analyzerParams='{
"type": "standard"
}'
El analizador standard acepta los siguientes parámetros opcionales:
Parámetro |
Descripción |
|---|---|
|
Una matriz que contiene una lista de palabras de parada, que se eliminarán de la tokenización. El valor predeterminado es |
Ejemplo de configuración de palabras reservadas personalizadas:
analyzer_params = {
"type": "standard", # Specifies the standard analyzer type
"stop_words", ["of"] # Optional: List of words to exclude from tokenization
}
Map<String, Object> analyzerParams = new HashMap<>();
analyzerParams.put("type", "standard");
analyzerParams.put("stop_words", Collections.singletonList("of"));
analyzer_params = {
"type": "standard", // Specifies the standard analyzer type
"stop_words", ["of"] // Optional: List of words to exclude from tokenization
}
analyzerParams = map[string]any{"type": "standard", "stop_words": []string{"of"}}
# restful
Después de definir analyzer_params, puede aplicarlas a un campo VARCHAR al definir un esquema de colección. Esto permite a Milvus procesar el texto en ese campo utilizando el analizador especificado para una tokenización y filtrado eficientes. Para más información, consulte Ejemplo de uso.
Ejemplos
Antes de aplicar la configuración del analizador a su esquema de recopilación, verifique su comportamiento utilizando el método run_analyzer.
Configuración del analizador
analyzer_params = {
"type": "standard", # Standard analyzer configuration
"stop_words": ["for"] # Optional: Custom stop words parameter
}
Map<String, Object> analyzerParams = new HashMap<>();
analyzerParams.put("type", "standard");
analyzerParams.put("stop_words", Collections.singletonList("for"));
// javascript
analyzerParams = map[string]any{"type": "standard", "stop_words": []string{"for"}}
# restful
analyzerParams='{
"type": "standard",
"stop_words": [
"of"
]
}'
Verificación mediante run_analyzer
from pymilvus import (
MilvusClient,
)
client = MilvusClient(
uri="http://localhost:19530",
token="root:Milvus"
)
# Sample text to analyze
sample_text = "The Milvus vector database is built for scale!"
# Run the standard analyzer with the defined configuration
result = client.run_analyzer(sample_text, analyzer_params)
print("Standard analyzer output:", result)
import io.milvus.v2.client.ConnectConfig;
import io.milvus.v2.client.MilvusClientV2;
import io.milvus.v2.service.vector.request.RunAnalyzerReq;
import io.milvus.v2.service.vector.response.RunAnalyzerResp;
ConnectConfig config = ConnectConfig.builder()
.uri("http://localhost:19530")
.token("root:Milvus")
.build();
MilvusClientV2 client = new MilvusClientV2(config);
List<String> texts = new ArrayList<>();
texts.add("The Milvus vector database is built for scale!");
RunAnalyzerResp resp = client.runAnalyzer(RunAnalyzerReq.builder()
.texts(texts)
.analyzerParams(analyzerParams)
.build());
List<RunAnalyzerResp.AnalyzerResult> results = resp.getResults();
// javascript
import (
"context"
"encoding/json"
"fmt"
"github.com/milvus-io/milvus/client/v2/milvusclient"
)
client, err := milvusclient.New(ctx, &milvusclient.ClientConfig{
Address: "localhost:19530",
APIKey: "root:Milvus",
})
if err != nil {
fmt.Println(err.Error())
// handle error
}
bs, _ := json.Marshal(analyzerParams)
texts := []string{"The Milvus vector database is built for scale!"}
option := milvusclient.NewRunAnalyzerOption(texts).
WithAnalyzerParams(string(bs))
result, err := client.RunAnalyzer(ctx, option)
if err != nil {
fmt.Println(err.Error())
// handle error
}
# restful
Salida esperada
Standard analyzer output: ['the', 'milvus', 'vector', 'database', 'is', 'built', 'scale']