البرمجة
بحث معقد في ElasticSearch: بحث عن :Feed: واسترجاع السجلات لليوم السابق
05/03/2024آخر تحديث: 05/03/2024
4 دقيقة واحدة
للبحث عن تطابق دقيق للنص “:Feed:” في حقل الرسالة (message) واسترجاع جميع السجلات التي تطابق ذلك والتي تعود ليوم واحد إلى الوراء، يمكنك تعديل استعلام ElasticSearch الخاص بك على النحو التالي:
json{
"query": {
"bool": {
"must": [
{
"query_string": {
"fields": ["message"],
"query": "\\:Feed\\:"
}
},
{
"range": {
"timestamp": {
"gte": "now-1d",
"lte": "now"
}
}
}
]
}
}
}
التعديل الرئيسي هو استخدام مصفوفة (array) لـ”must” بدلاً من تقديم مفتاح “must” مرتين. هذا يضمن أن كل من الشروط (conditions) – البحث عن “:Feed:” والتحقق من نطاق التاريخ – يجب أن تكونا متحققتين لكل سجل.
مقالات ذات صلة
المزيد من المعلومات
بالتأكيد، يمكنني توضيح المزيد من المعلومات حول استعلام ElasticSearch الخاص بك:
- في الاستعلام الحالي، تستخدم
query_string
للبحث في حقلmessage
عن النص\:Feed\:
. يتم وضع العلامات\:
للتأكيد على أننا نبحث عن نص محدد وليس كلمة عابرة. - ثم، تستخدم شرط
range
للتحقق من أن السجلات التي تم العثور عليها تقع ضمن نطاق تاريخ محدد. في هذه الحالة، يتم التحقق من أن الوقتtimestamp
يكون بين “now-1d” (يعني الوقت الحالي قبل يوم واحد) و “now” (الوقت الحالي). - تم تصحيح الهيكل الخاص بـ
bool
بحيث يكون لديك مصفوفة من شروط الـmust
بدلاً من تقديم مفتاحmust
مرتين، وهذا يضمن أن تكون كل الشروط متحققة لكل سجل.
إذا كان لديك أي استفسار آخر أو تحتاج إلى مساعدة إضافية، فلا تتردد في طرحها.