بحث Atlas
قم بتكوين مشغل Atlas Search، المركب / الفلتر، النتيجة، التمييز، تسلسل الرموز، الترقيم / العد وفقًا للإصدار 1.0.0.
Atlas Search الأساسي
يجب أن يكون $search و $searchMeta المرحلة الأولى من خط أنابيب التجميع، لذا فهي مفصولة عن تدفق fields(...).end(). يمكن أيضًا استخدام .search() بدون فهرس.
مشغل البحث
• باني الجذر: text, phrase, autocomplete, equals, exists, in, range, compound
• شرط قابل لإعادة الاستخدام: SearchOperators.text/phrase/autocomplete/equals/in/exists/range
• مشغل الجذر الأصلي: operator(SearchOperator)
• غلاف السائق المسماة: SearchOperators.driver(name, operator)
يدعم compound must, mustNot, should, filter, minimumShouldMatch, score ويمكن أيضًا تمرير مشغل AtlasSearchOperator العادي مباشرة.
نص / عبارة / إكمال تلقائي
• text: المسار (المسارات)، الاستعلام (الاستعلامات)، ضبابي، معايير المطابقة، مرادفات، نتيجة
• phrase: المسار (المسارات)، الاستعلام (الاستعلامات)، انزلاق، مرادفات، نتيجة
• autocomplete: مسار واحد، استعلام (استعلامات)، ترتيب الرموز، ضبابي، نتيجة
• لا تستخدم fuzzy(...) و synonyms(...) في نفس الوقت.
اختلاف شرط البحث وحقول ما بعد البحث
search().fields(...) ليس فلتر داخل $search بل هو $match العادي بعد $search. لاستخدام compound.filter(...) لتقييد المرشحين في مرحلة فهرس البحث.
النتيجة والترتيب
تحدد scoreDesc() / scoreAsc() والأولوية العامة حسب ترتيب الاستدعاء. من الأفضل وضع ترتيب حقل فريد مستقر مع النتيجة لضمان ترقيم مستقر.
تمييز / تفاصيل النتيجة / تسلسل الرموز
الاسم المستعار الافتراضي هو highlights و scoreDetails و searchSequenceToken. addFieldsScoreDetails() يقوم أيضًا بتفعيل تفاصيل الدرجات في خيارات البحث.
التصفح / رمز التسلسل / العدد
count().execute()
عدد خط الأنابيب النهائي الذي يعكس fields(...) وعتبة الدرجات بعد البحث.
count().executeSearchMeta()
عدد بيانات التعريف searchMeta. يدعم SearchCountType.TOTAL/LOWER_BOUND ولا ينفذ $match بعد البحث.
existsQuery().execute()
يتحقق مما إذا كانت نتائج خط أنابيب البحث تحتوي على أكثر من سجل واحد.
توسيع Driver-native
stage(Bson) يأتي مباشرة بعد $search ولا ينطبق على خط أنابيب عدد بيانات التعريف $searchMeta لـ executeSearchMeta(). إذا تمت إضافة ميزات جديدة للسائق قبل واجهة برمجة التطبيقات المريحة DSL، يتم استخدام operator و driverOptions و stage و SortSpec.driver و customizeAggregation أولاً.