/companies/search، /people/search، /companies/advertisements/search) في محرك فلاتر واحد. تُنشئ نص الطلب مرة واحدة وتنطبق القواعد نفسها عبر نقاط النهاية — بما في ذلك طريقة دمج الفلاتر متعددة القيم، وكيفية مطابقة المواقع، وكيفية تجاوز المعامل الافتراضي عبر filter_conditions.
لماذا محرك فلاتر موحّد؟
مخطط واحد، ثلاث نقاط نهاية
فلاتر مستوى الشركة مثل
technologies وverticals وfounded_dates تعمل بنفس الطريقة على /companies/search و/people/search وداخل company_filters في Monitor — تتعلمها مرة واحدة.AND/OR لكل فلتر
القيمة الافتراضية هي OR (مطابقة أي قيمة). ارفع فلاترًا فردية إلى AND (مطابقة الكل) بإضافة عبارة واحدة إلى
filter_conditions — دون المساس ببقية نص الطلب.معاملات أصلية في Postgres
تُترجم فلاتر المصفوفة إلى معاملات Postgres أصلية —
&& (تداخل) لـ OR، و@> (احتواء) لـ AND. ملائمة للفهرسة، دون تصفية إضافية من جهة التطبيق.نفس الفلاتر في Monitors
تقبل كتلة
company_filters في Monitors الشكل نفسه، لذا فإن حمولة بحث تعمل هي أيضًا حمولة Monitor صالحة.تشريح طلب بحث
يُبنى كل طلب بحث من ثلاث طبقات في نفس نص JSON:
طلب
/people/search بسيط يستخدم الطبقات الثلاث جميعًا:
company_filters: إبقاء مفاتيح الشركة مجمّعة
كائن الغلاف company_filters: {...} هو الطريقة الموصى بها لإرسال فلاتر مستوى الشركة — فهو يفصل بصريًا بين المفاتيح التي تصفّي الشخص والمفاتيح التي تصفّي الشركة، ويطابق الشكل الذي تستخدمه Monitors بالفعل، بحيث تنتقل الحمولات بسلاسة بين إعدادات البحث وMonitor.
كلا الأسلوبين يعمل؛ يُسطِّح المحرك الشكل المُغلَّف إلى المستوى الأعلى قبل المعالجة، وتفوز مفاتيح المستوى الأعلى عند التعارض:
filter_conditions لمفتاح على مستوى الشركة، ضعه داخل company_filters كي ينتقل مع المفاتيح التي يتجاوزها.
نفس الشكل في نسختي /search/similar
تقبل POST /companies/search/similar وPOST /people/search/similar نفس نص الفلاتر الذي تقبله النسختان غير المشابهتان (بما في ذلك غلاف company_filters وfilter_conditions). تضيف كل نقطة نهاية خطوة تشابه فوق ذلك:
غلاف الاستجابة مطابق للنقطة القياسية
search فيما عدا ذلك. تُضيّق الفلاتر مجموعة المرشحين قبل تطبيق ترتيب التشابه — لذا فإن دمج company_locations: ["US"] مع /people/search/similar يُرجع أقرب الأشخاص في الولايات المتحدة إلى مسمياتك الوظيفية المرجعية، وهو نمط “ابحث عن المزيد من الأشخاص المشابهين لـ X ضمن هذه القيود”.
خلافًا لنقاط نهاية
/search القياسية، لا تُرجع /search/similar قيمة pagination.total_entries دقيقة — القيمة محدودة سقفًا لأن البحث بالتشابه يرتّب النتائج حسب الصلة ويُظهر فقط أفضل التطابقات. استخدم البحث بالتشابه لإيجاد أفضل التطابقات، وليس لحصر كل واحدة منها.AND مقابل OR — القرار الوحيد الذي تتخذه لكل فلتر
تقبل الفلاتر متعددة القيم (technologies، verticals، keywords، categories، …) مصفوفة. يحدد المعامل معنى “المطابقة”:
- OR (الافتراضي)
- AND
مطابقة أي قيمة. يُرجع الصفوف التي تتداخل مصفوفتها مع المدخلات.تُدرَج الشركة إذا كانت حزمة تقنياتها تحتوي على قيمة واحدة على الأقل من
Python أو PostgreSQL أو Kubernetes. تُترجم إلى column && ARRAY[...] في Postgres.استخدمها عندما: تريد نطاقًا واسعًا — “مهتم بـ أي من هذه”، “موجود في أي من هذه الدول”.الفلاتر غير المدرجة في
filter_conditions تستخدم المعامل الافتراضي (OR داخل المصفوفة، AND بين مفاتيح الفلاتر المختلفة). تُعلن فقط التجاوزات — لا تحتاج أبدًا إلى كتابة القيم الافتراضية.ما يمكنك تجاوزه
تقبل كل نقطة نهاية تجاوزات لمجموعة مختلفة من المفاتيح. تأتي المفاتيح من تعداد OpenAPI في كل مخطط*_filter_conditions:
نقطة نهاية الشركة
مفاتيح
company_filter_conditions: keywords، verticals، vertical_categories، vertical_sub_categories، technologies، categories، advertisement_target_locations، advertisement_exclude_target_locations، advertisement_search_terms، places، exclude_places، job_exclude_locations.نقطة نهاية الأشخاص
مفاتيح
people_filter_conditions (تُفوَّض إلى محرك الشركة): keywords، verticals، vertical_categories، vertical_sub_categories، technologies، categories، places، exclude_places، إضافةً إلى social_media.نقطة نهاية الإعلانات
مفاتيح
ads_filter_conditions: target_locations، exclude_target_locations. مجموعة أصغر لأن الإعلانات تُصفَّى فقط حسب دولة الظهور.نصائح للأداء
صفِّ مبكرًا على الأعمدة المفهرَسة
صفِّ مبكرًا على الأعمدة المفهرَسة
المواقع، ونطاقات عدد الموظفين، و
founded_dates جميعها مفهرَسة وتُقلِّص مجموعة المرشحين أسرع من الفلاتر النصية الحرة أو فلاتر القطاعات. اجمعها مع فلتر أو فلترين دقيقين قبل اللجوء إلى البحث بالتشابه.لا تُفرِط في استخدام AND على مصفوفات كبيرة
لا تُفرِط في استخدام AND على مصفوفات كبيرة
يتطلب
column @> ARRAY[a, b, c, …] أن تكون كل قيمة موجودة. تنمو الأصالة العددية بسرعة — فتطبيق AND على 10 تقنيات في فئة متوسط وسومها 3 تقنيات يُرجع صفوفًا قريبة من الصفر ويفرض فحصًا كاملًا للجدول. فضِّل 2-4 قيم لكل فلتر AND؛ وانتقل إلى OR للاستعلامات الاستكشافية.استخدم is_enable_similarity_search للمدخلات النصية الحرة
استخدم is_enable_similarity_search للمدخلات النصية الحرة
إذا تعذّر عليك توفير معرّفات slug (للقطاعات، والتقنيات، والفئات) ولديك فقط سلاسل نصية حرة، اضبط
is_enable_similarity_search: true وsimilarity_score: 0.7. يحلّ المحرك التطابقات قبل تطبيق الفلتر — أرخص بكثير من فحص النص.فضِّل النطاقات على قوائم التعداد للحجم والإيرادات
فضِّل النطاقات على قوائم التعداد للحجم والإيرادات
employees: [[201, 500], [501, 1000]] (مصفوفة من الفئات) وrevenues: [1000000, 5000000] (نطاق أدنى/أعلى واحد) أسرع وأكثر توافقًا مع الأسلوب من قوائم المعرّفات الطويلة.فلاتر النشاط الإعلاني
يمكن لـ/companies/search التصفية حسب البصمة الإعلانية للشركة — عدد الإعلانات التي تُشغّلها، وما إذا كان أي منها نشطًا حاليًا، والمنصات والصيغ التي تستخدمها، وترتيبها مقارنةً بالمعلنين الآخرين في دولة معينة. تقبل POST /companies/advertisements/search كل هذه الفلاتر أيضًا (advertisement_active_ads، advertisement_running_ads، advertisement_total_ads، advertisement_platform_count، advertisement_format_count، advertisement_impressions_estimate، advertisement_formats، advertisement_country_activity) — يُدرَج الإعلان إذا استوفت الشركة المالكة له الشرط.
استخدم
null لحد مفتوح — [1, null] تعني “على الأقل 1”، و[null, 500] تعني “500 أو أقل”.
الترتيب داخل دولة
يحدّدadvertisement_country_activity نطاق الترتيب والمئوية ودرجة الحجم لدولة واحدة في كل مرة — لأن ترتيب إعلانات شركة في الولايات المتحدة لا يقول شيئًا عن ترتيبها في ألمانيا، لذا فإن country مطلوب:
advertisement_country_activity مع الفلاتر السارية على كل الدول أعلاه في نفس الطلب — على سبيل المثال، “مرتبة ضمن أفضل 500 في الولايات المتحدة، ولديها 100 إعلان نشط على الأقل على مستوى الشركة”:
الخطوات التالية
filter_conditions
صفحة مرجعية — كل مفتاح مدعوم، وكل قيمة افتراضية، ووصفات AND/OR جاهزة للنسخ.
فلاتر الأشخاص + الشركة
استخدم أي فلتر شركة داخل
/people/search. الميزة الجديدة الأبرز للمحرك الموحّد.مرجع بحث الشركات
مخطط الطلب/الاستجابة الكامل لـ
/companies/search.مرجع بحث الأشخاص
مخطط الطلب/الاستجابة الكامل لـ
/people/search.تبحث عن شرح التصفية من جانب لوحة التحكم؟ انظر تصفية جهات الاتصال وتصديرها في قاعدة المعرفة.

