ASCII-Faltung

Der Filter asciifolding wandelt Zeichen außerhalb des Basic Latin Unicode-Blocks (die ersten 127 ASCII-Zeichen) in ihre ASCII-Entsprechung um. So werden beispielsweise Zeichen wie í in i umgewandelt, wodurch die Textverarbeitung einfacher und konsistenter wird, insbesondere bei mehrsprachigen Inhalten.

Konfiguration

Der Filter asciifolding ist in Milvus integriert. Um ihn zu verwenden, geben Sie einfach seinen Namen im Abschnitt filter innerhalb von analyzer_params an.

analyzer_params = {
    "tokenizer": "standard",
    "filter": ["asciifolding"],
}
Map<String, Object> analyzerParams = new HashMap<>();
analyzerParams.put("tokenizer", "standard");
analyzerParams.put("filter", Collections.singletonList("asciifolding"));
const analyzer_params = {
    "tokenizer": "standard",
    "filter": ["asciifolding"],
};
analyzerParams = map[string]any{"tokenizer": "standard", "filter": []any{"asciifolding"}}
# restful
analyzerParams='{
  "tokenizer": "standard",
  "filter": [
    "asciifolding"
  ]
}'

Der asciifolding -Filter arbeitet mit den vom Tokenizer erzeugten Begriffen, so dass er in Kombination mit einem Tokenizer verwendet werden muss. Eine Liste der in Milvus verfügbaren Tokenizer finden Sie unter Standard Tokenizer und den zugehörigen Seiten.

Nachdem Sie analyzer_params definiert haben, können Sie sie auf ein VARCHAR Feld anwenden, wenn Sie ein Sammelschema definieren. Dies ermöglicht es Milvus, den Text in diesem Feld mit dem angegebenen Analyzer für eine effiziente Tokenisierung und Filterung zu verarbeiten. Einzelheiten finden Sie unter Beispielanwendung.

Beispiele

Bevor Sie die Analyzer-Konfiguration auf Ihr Sammelschema anwenden, überprüfen Sie das Verhalten mit der Methode run_analyzer.

Analyzer-Konfiguration

analyzer_params = {
    "tokenizer": "standard",
    "filter": ["asciifolding"],
}
Map<String, Object> analyzerParams = new HashMap<>();
analyzerParams.put("tokenizer", "standard");
analyzerParams.put("filter", Collections.singletonList("asciifolding"));
// javascript
analyzerParams = map[string]any{"tokenizer": "standard", "filter": []any{"asciifolding"}}
# restful

Überprüfung mit run_analyzerCompatible with Milvus 2.5.11+

from pymilvus import (
    MilvusClient,
)

client = MilvusClient(uri="http://localhost:19530")

# Sample text to analyze
sample_text = "Café Möller serves crème brûlée and piñatas."

# 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")
        .build();
MilvusClientV2 client = new MilvusClientV2(config);

List<String> texts = new ArrayList<>();
texts.add("Café Möller serves crème brûlée and piñatas.");

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{"Café Möller serves crème brûlée and piñatas."}
option := milvusclient.NewRunAnalyzerOption(texts).
    WithAnalyzerParams(string(bs))

result, err := client.RunAnalyzer(ctx, option)
if err != nil {
    fmt.Println(err.Error())
    // handle error
}
# restful

Erwartete Ausgabe

['Cafe', 'Moller', 'serves', 'creme', 'brulee', 'and', 'pinatas']

Try Managed Milvus for Free

Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

Get Started
Feedback

War diese Seite hilfreich?