الفهرس_المتفرق_المقلوب_الفهرس
الفهرس SPARSE_INVERTED_INDEX هو نوع فهرس يستخدمه Milvus لتخزين المتجهات المتفرقة والبحث فيها بكفاءة. يستفيد هذا النوع من الفهرس من مبادئ الفهرسة المقلوبة لإنشاء بنية بحث عالية الكفاءة للبيانات المتفرقة. لمزيد من المعلومات، راجع INVERTED.
إنشاء فهرس
لإنشاء فهرس SPARSE_INVERTED_INDEX على حقل متجه متناثر في ميلفوس، استخدم الطريقة add_index() ، مع تحديد index_type و metric_type ومعلمات إضافية للفهرس.
from pymilvus import MilvusClient
# Prepare index building params
index_params = MilvusClient.prepare_index_params()
index_params.add_index(
field_name="your_sparse_vector_field_name", # Name of the vector field to be indexed
index_type="SPARSE_INVERTED_INDEX", # Type of the index to create
index_name="sparse_inverted_index", # Name of the index to create
metric_type="IP", # Metric type used to measure similarity
params={"inverted_index_algo": "DAAT_MAXSCORE"}, # Algorithm used for building and querying the index
)
في هذا التكوين
index_type: نوع الفهرس المراد إنشاؤه. في هذا المثال، اضبط القيمة علىSPARSE_INVERTED_INDEX.metric_type: المقياس المستخدم لحساب التشابه بين المتجهات المتفرقة. قيم صالحة:IP(الضرب الداخلي): يقيس التشابه باستخدام الضرب النقطي.BM25: يستخدم عادةً للبحث في النص الكامل، مع التركيز على التشابه النصي.لمزيد من التفاصيل، راجع أنواع القياس والبحث في النص الكامل.
params.inverted_index_algo: الخوارزمية المستخدمة لبناء الفهرس والاستعلام عنه. قيم صالحة:"DAAT_MAXSCORE"(افتراضي): معالجة استعلام المستند في الوقت المحسن (DAAT) باستخدام خوارزمية MaxScore. يوفر MaxScore أداءً أفضل لقيم k العالية أو الاستعلامات التي تحتوي على العديد من المصطلحات عن طريق تخطي المصطلحات والمستندات التي من المحتمل أن يكون لها تأثير ضئيل. وهي تحقق ذلك من خلال تقسيم المصطلحات إلى مجموعات أساسية وغير أساسية بناءً على درجات التأثير القصوى، مع التركيز على المصطلحات التي يمكن أن تساهم في أعلى k من النتائج."DAAT_WAND": معالجة استعلام DAAT الأمثل باستخدام خوارزمية WAND. تقوم WAND بتقييم عدد أقل من المستندات التي تم الوصول إليها من خلال الاستفادة من درجات التأثير القصوى لتخطي المستندات غير المنافسة، ولكن لديها نفقات أعلى لكل ضربة. وهذا يجعل WAND أكثر كفاءة للاستعلامات ذات القيم k الصغيرة أو الاستعلامات القصيرة، حيث يكون التخطي أكثر جدوى."TAAT_NAIVE": معالجة استعلام المصطلح الأساسي في الوقت (TAAT). على الرغم من أنها أبطأ مقارنةً بـDAAT_MAXSCOREوDAAT_WAND، إلا أنTAAT_NAIVEتقدم ميزة فريدة. على عكس خوارزميات DAAT، التي تستخدم درجات التأثير القصوى المخزنة مؤقتًا والتي تظل ثابتة بغض النظر عن التغييرات التي تطرأ على معلمة التجميع العالمية (avgdl)، يتكيفTAAT_NAIVEديناميكيًا مع هذه التغييرات.
لمعرفة المزيد من معلمات البناء المتوفرة للفهرس
SPARSE_INVERTED_INDEX، راجع بارامترات بناء الفهرس.
بمجرد تكوين معلمات الفهرس، يمكنك إنشاء الفهرس باستخدام الأسلوب create_index() مباشرةً أو تمرير بارامترات الفهرس في الأسلوب create_collection. لمزيد من التفاصيل، راجع إنشاء مجموعة.
البحث في الفهرس
بمجرد إنشاء الفهرس وإدراج الكيانات، يمكنك إجراء عمليات بحث عن التشابه على الفهرس.
# Prepare the query vector
query_vector = [{1: 0.2, 50: 0.4, 1000: 0.7}]
res = MilvusClient.search(
collection_name="your_collection_name", # Collection name
anns_field="vector_field", # Vector field name
data=query_vector, # Query vector
limit=3, # TopK results to return
)
لمعرفة المزيد من معلمات البحث المتوفرة للفهرس SPARSE_INVERTED_INDEX ، راجع باراميات البحث الخاصة بالفهرس.
بارامترات الفهرس
يقدم هذا القسم نظرة عامة على المعلمات المستخدمة لبناء الفهرس وإجراء عمليات البحث على الفهرس.
معلمات بناء الفهرس
يسرد الجدول التالي المعلمات التي يمكن تكوينها في params عند إنشاء فهرس.
المعلمة |
الوصف |
نطاق القيمة |
اقتراح الضبط |
|---|---|---|---|
|
الخوارزمية المستخدمة لبناء الفهرس والاستعلام عنه. وهي تحدد كيفية معالجة الفهرس للاستعلامات. |
|
استخدم اختر استخدم |
بارامترات البحث الخاصة بالفهرس
يسرد الجدول التالي المعلمات التي يمكن تكوينها في search_params.params عند البحث في الفهرس.
المعلمة |
الوصف |
نطاق القيمة |
اقتراح الضبط |
|---|---|---|---|
|
نسبة أصغر القيم المراد تجاهلها أثناء البحث، مما يساعد على تقليل التشويش. |
الكسر بين 0.0 و1.0 (على سبيل المثال، 0.2 يتجاهل أصغر 20% من القيم) |
اضبط هذه المعلمة استنادًا إلى مستوى التشتت والتشويش في متجهات الاستعلام لديك. تتحكم هذه المعلمة في نسبة القيم منخفضة الحجم التي تم إسقاطها أثناء البحث. يمكن أن تؤدي زيادة هذه القيمة (على سبيل المثال، إلى |