Bahasa Inggris
Penganalisis english di Milvus dirancang untuk memproses teks bahasa Inggris, menerapkan aturan khusus bahasa untuk tokenisasi dan penyaringan.
Definisi
Penganalisis english menggunakan komponen-komponen berikut:
Tokenizer: Menggunakan tokenizer
standarduntuk membagi teks menjadi unit-unit kata yang terpisah.Filter: Termasuk beberapa filter untuk pemrosesan teks yang komprehensif:
lowercase: Mengubah semua token menjadi huruf kecil, sehingga memungkinkan pencarian tanpa huruf besar-kecil.stemmer: Mengurangi kata menjadi bentuk dasar untuk mendukung pencocokan yang lebih luas (misalnya, "berlari" menjadi "menjalankan").stop_words: Menghilangkan kata henti bahasa Inggris yang umum untuk fokus pada istilah-istilah kunci dalam teks.
Fungsionalitas dari english analyzer setara dengan konfigurasi penganalisis khusus berikut ini:
analyzer_params = {
"tokenizer": "standard",
"filter": [
"lowercase",
{
"type": "stemmer",
"language": "english"
}, {
"type": "stop",
"stop_words": "_english_"
}
]
}
Map<String, Object> analyzerParams = new HashMap<>();
analyzerParams.put("tokenizer", "standard");
analyzerParams.put("filter",
Arrays.asList("lowercase",
new HashMap<String, Object>() {{
put("type", "stemmer");
put("language", "english");
}},
new HashMap<String, Object>() {{
put("type", "stop");
put("stop_words", Collections.singletonList("_english_"));
}}
)
);
const analyzer_params = {
"type": "standard", // Specifies the standard analyzer type
"stop_words", ["of"] // Optional: List of words to exclude from tokenization
}
analyzerParams = map[string]any{"tokenizer": "standard",
"filter": []any{"lowercase", map[string]any{
"type": "stemmer",
"language": "english",
}, map[string]any{
"type": "stop",
"stop_words": "_english_",
}}}
# restful
analyzerParams='{
"tokenizer": "standard",
"filter": [
"lowercase",
{
"type": "stemmer",
"language": "english"
},
{
"type": "stop",
"stop_words": "_english_"
}
]
}'
Konfigurasi
Untuk menerapkan penganalisis english ke sebuah bidang, cukup setel type ke english di analyzer_params, dan sertakan parameter opsional sesuai kebutuhan.
analyzer_params = {
"type": "english",
}
Map<String, Object> analyzerParams = new HashMap<>();
analyzerParams.put("type", "english");
const analyzer_params = {
"type": "english",
}
analyzerParams = map[string]any{"type": "english"}
# restful
analyzerParams='{
"type": "english"
}'
Penganalisis english menerima parameter opsional berikut ini:
Parameter |
Deskripsi |
|---|---|
|
Larik yang berisi daftar kata berhenti, yang akan dihapus dari tokenisasi. Defaultnya adalah |
Contoh konfigurasi dengan kata henti khusus:
analyzer_params = {
"type": "english",
"stop_words": ["a", "an", "the"]
}
Map<String, Object> analyzerParams = new HashMap<>();
analyzerParams.put("type", "english");
analyzerParams.put("stop_words", Arrays.asList("a", "an", "the"));
const analyzer_params = {
"type": "english",
"stop_words": ["a", "an", "the"]
}
analyzerParams = map[string]any{"type": "english", "stop_words": []string{"a", "an", "the"}}
# restful
analyzerParams='{
"type": "english",
"stop_words": [
"a",
"an",
"the"
]
}'
Setelah mendefinisikan analyzer_params, Anda dapat menerapkannya ke bidang VARCHAR saat mendefinisikan skema koleksi. Hal ini memungkinkan Milvus untuk memproses teks di dalam bidang tersebut menggunakan penganalisis yang ditentukan untuk tokenisasi dan pemfilteran yang efisien. Untuk detailnya, lihat Contoh penggunaan.
Contoh
Sebelum menerapkan konfigurasi penganalisis ke skema koleksi Anda, verifikasi perilakunya menggunakan metode run_analyzer.
Konfigurasi penganalisis
analyzer_params = {
"type": "english",
"stop_words": ["a", "an", "the"]
}
Map<String, Object> analyzerParams = new HashMap<>();
analyzerParams.put("type", "english");
analyzerParams.put("stop_words", Arrays.asList("a", "an", "the"));
// javascript
analyzerParams = map[string]any{"type": "english", "stop_words": []string{"a", "an", "the"}}
# restful
analyzerParams='{
"type": "english",
"stop_words": [
"a",
"an",
"the"
]
}'
Verifikasi menggunakan run_analyzerCompatible with Milvus 2.5.11+
from pymilvus import (
MilvusClient,
)
client = MilvusClient(uri="http://localhost:19530")
# Sample text to analyze
sample_text = "Milvus is a vector database built for scale!"
# Run the standard analyzer with the defined configuration
result = client.run_analyzer(sample_text, analyzer_params)
print("English 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("Milvus is a vector database 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{"Milvus is a vector database 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
Keluaran yang diharapkan
English analyzer output: ['milvus', 'vector', 'databas', 'built', 'scale']