مرشح محلل التعبيرات النمطيةCompatible with Milvus 2.5.11+
مرشح " regex " هو مرشح تعبير عادي: لا يتم الاحتفاظ بأي رمز ينتجه أداة تحليل الرموز إلا إذا كان مطابقًا للتعبير الذي تقدمه؛ ويتم تجاهل كل ما عدا ذلك.
تصف هذه الصفحة مرشح « regex » في مسار عمل المحلل. يقوم هذا المرشح بتصفية الرموز التي ينتجها أداة تحليل الرموز، ويؤثر على المصطلحات التي يتم إنشاؤها أثناء تحليل النص. لتصفية الكيانات باستخدام تعبيرات قياسية مثل field =~ "pattern" أو field !~ "pattern" في البحث « query » أو « search » أو البحث المختلط، راجع «مطابقة الأنماط».
التكوين
يُعد مرشح « regex » مرشحًا مخصصًا في Milvus. لاستخدامه، حدد "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 " على المصطلحات التي يولدها أداة تحليل الرموز (tokenizer)، لذا يجب استخدامه بالاقتران مع أداة تحليل الرموز.
بعد تعريف « analyzer_params » (التعبيرات العادية)، يمكنك تطبيقها على حقل « VARCHAR » (المعالج) عند تعريف مخطط المجموعة. وهذا يسمح لـ Milvus بمعالجة النص الموجود في هذا الحقل باستخدام المحلل المحدد من أجل التقطيع والتصفية بكفاءة. لمزيد من التفاصيل، راجع «مثال على الاستخدام».
أمثلة
قبل تطبيق تكوين المحلل على مخطط المجموعة الخاص بك، تحقق من سلوكه باستخدام طريقة 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']