ريجكسCompatible with Milvus 2.5.11+
عامل التصفية regex هو عامل تصفية للتعبير العادي: يتم الاحتفاظ بأي رمز رمزي ينتج عن أداة الترميز فقط إذا كان يتطابق مع التعبير الذي توفره؛ ويتم تجاهل أي شيء آخر.
التكوين
عامل التصفية regex هو عامل تصفية مخصص في ميلفوس. لاستخدامه، حدد "type": "regex" في تكوين الفلتر، إلى جانب معلمة expr لتحديد التعبيرات العادية المطلوبة.
analyzer_params = {
"tokenizer": "standard",
"filter": [{
"type": "regex",
"expr": "^(?!test)" # keep tokens that do NOT start with "test"
}]
}
Map<String, Object> analyzerParams = new HashMap<>();
analyzerParams.put("tokenizer", "standard");
analyzerParams.put("filter",
Arrays.asList(new HashMap<String, Object>() {{
put("type", "regex");
put("expr", "^(?!test)");
}})
);
// node
analyzerParams = map[string]any{"tokenizer": "standard",
"filter": []any{map[string]any{
"type": "regex",
"expr": "^(?!test)",
}}}
# curl
يقبل عامل التصفية regex المعلمات التالية القابلة للتكوين.
المعلمة |
الوصف |
|---|---|
|
نمط تعبير عادي يطبق على كل رمز مميز. يتم الاحتفاظ بالرموز التي تتطابق؛ أما غير المتطابقة فيتم إسقاطها. للحصول على تفاصيل حول بناء جملة التعبير العادي، راجع بناء الجملة. |
يعمل عامل التصفية regex على المصطلحات التي تم إنشاؤها بواسطة أداة الترميز، لذا يجب استخدامه مع أداة الترميز.
بعد تحديد analyzer_params ، يمكنك تطبيقها على حقل VARCHAR عند تحديد مخطط المجموعة. يسمح ذلك لميلفوس بمعالجة النص في ذلك الحقل باستخدام المحلل المحدد من أجل الترميز والتصفية الفعالة. للحصول على التفاصيل، راجع أمثلة الاستخدام.
أمثلة
قبل تطبيق تكوين المحلل على مخطط المجموعة الخاص بك، تحقق من سلوكه باستخدام الأسلوب run_analyzer.
تكوين المحلّل
analyzer_params = {
"tokenizer": "standard",
"filter": [{
"type": "regex",
"expr": "^(?!test)"
}]
}
Map<String, Object> analyzerParams = new HashMap<>();
analyzerParams.put("tokenizer", "standard");
analyzerParams.put("filter",
Collections.singletonList(new HashMap<String, Object>() {{
put("type", "regex");
put("expr", "^(?!test)");
}}));
// node
analyzerParams = map[string]any{"tokenizer": "standard",
"filter": []any{map[string]any{
"type": "regex",
"expr": "^(?!test)",
}}}
# curl
التحقق باستخدام run_analyzer
from pymilvus import (
MilvusClient,
)
client = MilvusClient(uri="http://localhost:19530")
# Sample text to analyze
sample_text = "testItem apple testCase banana"
# 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("testItem apple testCase banana");
RunAnalyzerResp resp = client.runAnalyzer(RunAnalyzerReq.builder()
.texts(texts)
.analyzerParams(analyzerParams)
.build());
List<RunAnalyzerResp.AnalyzerResult> results = resp.getResults();
// node
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{"testItem apple testCase banana"}
option := milvusclient.NewRunAnalyzerOption(texts).
WithAnalyzerParams(string(bs))
result, err := client.RunAnalyzer(ctx, option)
if err != nil {
fmt.Println(err.Error())
// handle error
}
# curl
المخرجات المتوقعة
['apple', 'banana']