كيفية فهرسة الحقول الرقمية والبحث عنها حسب النطاق في Lucene.net؟
-
22-09-2019 - |
سؤال
أنا أبحث عن طريقة فعالة لفهرسة والبحث في الحقول الرقمية في Lucene.net. الآن حاجتي هي لقيم عدد صحيح فقط.
أريد البحث عن طريق نطاقات القيم (بين x و y ، أكثر من x ...). في الوقت الحالي ، أقوم بفهرسة الرقم كما هو وإنشاء بنود يدويًا لكل قيمة بين القيمتين ، لكنه يولد بسرعة الكثير من الجمل ويضرب الحد الافتراضي (1024) عندما أبحث عن قيمة بين 1000 و 5000 ، على سبيل المثال. أنا متأكد من أن هناك طريقة أفضل للقيام بذلك ...
المحلول
حلها مع Rangequery. يمكن أيضًا القيام به مع محلل الاستعلام مع بناء الجملة التالي:
FieldName:[startValue TO endValue]
ضع في اعتبارك أن استعلام النطاق يعمل على الأوتار ، لذلك يجب تطبيع أرقامك في الفهرس وفي الاستعلام. في حالتي ، قمت بتطبيع إلى 5 أرقام مع .ToString ("00000"). سيكون من الضروري معالجة خاصة للأرقام السلبية والعشرية ، لكنها لم تكن مشكلة في حالتي.