سؤال

نحن نعمل على تطبيق الويب مع نموذج بحث.

في Servlet Servlet ، تلتقط معلمات الطلب من العميل ، ثم قم بإنشاء استعلام عن طريق البحث عن Hibernate للبحث.

الآن المشكلة هي المعلمات من العميل قابلة للتغيير!.

يتم سرد جميع المعلمات التي نقبلها على النحو التالي:

1) الكلمة الرئيسية.

الكلمة (الكلمات) الرئيسية التي تستخدم للبحث ، يمكن معالجة طلب البحث حتى يتم تمرير هذه المعلمة فقط.

مثال صالح:

/search?keyword="test"

2) lowleftx ، lowlefty ، apperrightx ، apperrighty.

يجب أن تحدث هذه المعلمة الأربعة في نفس الوقت أو أبداً. كما يتم استخدام هذه المعلمات الأربعة في termrangequery في لوسين. في حالة حدوث أحدهم ، يجب أن يحدث الباقي الثلاثة أيضًا.

ويمكن أن تحدث هذه المعلمة الأربعة مع "الكلمة الرئيسية" في Sametime.

مثال صالح:

/search?lowleftX=10&lowleftY=10&upperrightX=40&upperrightY=30
/search?lowleftX=10&lowleftY=10&upperrightX=40&upperrightY=30&keyword="test"

3) فئة

يستخدم هذا للحد من نطاق البحث (فقط ابحث في الفئة الخاصة).

4) البدء ، الحد

هاتان المعلمتان تستخدم لترحيل.

5) حقول العودة

حقول الإرجاع التي سيتم استردادها من الفهرس (إذا تم تخزينها في الفهرس) والعودة إلى العميل.

لذلك ليس لدي أي فكرة عن كيفية بناء الاستعلام باستخدام بناء جملة التقدير (إذا .... آخر .... إذا ...).

يمكن لأحد أن يقول لي كيف ؟

هل كانت مفيدة؟

المحلول

ليس لدي أي فكرة عما تعنيه بـ "تقدير بناء الجملة" ، لكن يبدو لي أن النقطة 1 -3 هي استعلام لوسين الفعلي. سيكون عليك فحص المعلمات وتحديد اعتمادًا على اسم وعدد المعلمات التي لديك نوع الاستعلام الذي لديك. باستخدام الفئات الفرعية المختلفة من الاستعلام ، وخاصة BooleAnquery ، يمكنك بعد ذلك إنشاء استعلام مناسب لوكين واستخدامه لإنشاء عملية بحث كاملة عن Hibernate. على استعلام النص الكامل هذا ، تحدد المعلمات البدء والحد. إذا كنت تستخدم توقعات لاسترداد قيم الحقل مباشرة من الفهرس ، فأنت أيضًا تقوم بتعيين أسماء الحقول المتوقعة على استعلام النص الكامل. آمل أن يساعد هذا قليلا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top