كيفية فهرسة الحقول الرقمية والبحث عنها حسب النطاق في Lucene.net؟

StackOverflow https://stackoverflow.com/questions/1589359

  •  22-09-2019
  •  | 
  •  

سؤال

أنا أبحث عن طريقة فعالة لفهرسة والبحث في الحقول الرقمية في Lucene.net. الآن حاجتي هي لقيم عدد صحيح فقط.

أريد البحث عن طريق نطاقات القيم (بين x و y ، أكثر من x ...). في الوقت الحالي ، أقوم بفهرسة الرقم كما هو وإنشاء بنود يدويًا لكل قيمة بين القيمتين ، لكنه يولد بسرعة الكثير من الجمل ويضرب الحد الافتراضي (1024) عندما أبحث عن قيمة بين 1000 و 5000 ، على سبيل المثال. أنا متأكد من أن هناك طريقة أفضل للقيام بذلك ...

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

المحلول

حلها مع Rangequery. يمكن أيضًا القيام به مع محلل الاستعلام مع بناء الجملة التالي:

FieldName:[startValue TO endValue]

ضع في اعتبارك أن استعلام النطاق يعمل على الأوتار ، لذلك يجب تطبيع أرقامك في الفهرس وفي الاستعلام. في حالتي ، قمت بتطبيع إلى 5 أرقام مع .ToString ("00000"). سيكون من الضروري معالجة خاصة للأرقام السلبية والعشرية ، لكنها لم تكن مشكلة في حالتي.

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