سؤال

وهنا المشكلة أواجه، لقد حصلت على مجموعة من السجلات التي يمكن أن تنمو بسرعة إلى حد ما. انهم تقسيمها إلى ملفات فردية كل يوم، ويمكن أن تنمو الملفات بسهولة إلى أزعج في الحجم. للمساعدة في الحفاظ على حجم أسفل، يتم مسح إدخالات أقدم من 30 يوما أو حتى خارج.

والمشكلة هي عندما تريد البحث هذه الملفات عن سلسلة معينة. الآن، بحث بوير مور بطيء unfeasibly. وأنا أعلم أن تطبيقات مثل و dtSearch يمكن أن توفر بحث سريع حقا استخدام الفهرسة، ولكن لست متأكدا حقا كيفية تنفيذ ذلك دون تناول ضعف مساحة سجل يأخذ بالفعل.

هل هناك أية موارد أستطيع أن تحقق من التي يمكن أن تساعد؟ أنا حقا تبحث عن خوارزمية القياسية التي سوف يشرح ما ينبغي القيام به لإنشاء فهرس واستخدامه للبحث.

وتحرير:
سوف البقرى لا تعمل كما يحتاج هذا البحث إلى أن تكون متكاملة في تطبيق عبر منصة. ليس هناك طريقة سوف تكون قادرة على أرجوحة بما في ذلك أي برنامج خارجي في ذلك.

وطريقة عملها هي أن هناك الأمامية على شبكة الإنترنت يحتوي على متصفح السجل. هذا يتحدث إلى العرف C ++ الخلفية خادم الويب. يحتاج هذا الخادم للبحث في السجلات في كمية معقولة من الزمن. تبحث حاليا من خلال العديد من العربات سجلات يأخذ الأعمار.

وتحرير 2: بعض من هذه الاقتراحات هي كبيرة، ولكن لا بد لي من التأكيد على أن لا يمكنني دمج تطبيق آخر، انها جزء من العقد. ولكن للإجابة على بعض الأسئلة، والبيانات في سجلات يختلف من أي تلقى الرسائل في شكل محدد للرعاية الصحية أو رسائل تتعلق هذه. أنا أبحث في الاعتماد على مؤشر لأنه في حين قد يستغرق ما يصل إلى دقيقة واحدة لإعادة إنشاء الفهرس، تبحث حاليا يستغرق وقتا طويلا جدا (رأيت ان يستغرق فترة تصل إلى 2.5 دقيقة). أيضا، والكثير من البيانات يتم تجاهل حتى قبل تسجيله. ما لم يتم تشغيل بعض خيارات تسجيل التصحيح على أكثر من نصف رسائل سجل يتم تجاهل.

وبحث يذهب الأساس من هذا القبيل: وتقدم للمستخدم على شكل شبكة الإنترنت مع قائمة الرسائل الأخيرة (المتدفقة من القرص حيث انتقل، ياي لاياكس)، عادة، فإنها سترغب في البحث عن الرسائل مع بعض المعلومات الواردة فيه، وربما هوية المريض، أو بعض سلسلة انهم إرسالها، وحتى أنها يمكن أن تدخل سلسلة في البحث. يحصل بعث بحث asychronously وخادم الويب مخصصة يبحث خطيا من خلال 1MB السجلات في وقت لبعض النتائج. هذه العملية يمكن أن تستغرق وقتا طويلا جدا عندما تحصل على سجلات كبيرة. وهذا ما أحاول على الوجه الأمثل.

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

المحلول

وتحقق من الخوارزميات التي تستخدم لوسين لبذل كل شيء. فهي ليست من المرجح أن تكون بسيطة جدا، وإن كان. كان لي لدراسة بعض هذه الخوارزميات ذات مرة، وبعضها متطور جدا.

إذا يمكنك تحديد "كلمات" في النص الذي تريد فهرسة، مجرد بناء جدول التجزئة كبير من الكلمات التي تقوم بتعيين تجزئة الكلمة إلى الحوادث في كل ملف. إذا كان المستخدمون تكرار نفس البحث في كثير من الأحيان، تخزين نتائج البحث. عندما يتم البحث، ثم يمكنك التحقق من كل مكان لتأكيد مصطلح البحث يقع هناك، بدلا من مجرد كلمة مع تجزئة مطابقة.

وأيضا، من يهتم حقا إذا كان مؤشر أكبر من الملفات نفسها؟ إذا كان النظام الخاص بك هو حقا بهذا الحجم، مع الكثير من النشاط، وبضع عشرات من العربات لفهرس نهاية العالم؟

نصائح أخرى

وgrep عادة ما يعمل بشكل جيد جدا بالنسبة لي مع سجلات كبيرة (أحيانا 12G +). يمكنك العثور على نسخة ويندوز هنا كذلك.

وأنت على الأرجح تريد دمج بعض نوع من محرك البحث فهرسة في التطبيق الخاص بك. هناك العشرات من هناك، لوسين يبدو أن شعبية جدا. تحقق هذين السؤالين لبعض مزيد من الاقتراحات:

أفضل محرك بحث في النصوص للاندماج مع شبكة الإنترنت مخصص التطبيق؟

كيف يمكنني تنفيذ وظائف البحث في الموقع؟

ومزيد من التفاصيل حول هذا النوع من البحث كنت المنفذ يمكن أن تساعد بالتأكيد. لماذا، على وجه الخصوص لا تريد الاعتماد على المؤشر منذ سيكون لديك لإعادة بنائه كل يوم عندما لفة سجلات انتهت؟ أي نوع من المعلومات في هذه السجلات؟ يمكن لبعض منها يتم التخلص منها قبل أي وقت مضى حتى تسجيله؟

ومتى يتم البحث هذه مع الأخذ الآن؟

وأنت قد ترغب في التحقق من مصدر للgrep BSD. قد لا تكون قادرة على الاعتماد على البقرى يجري هناك بالنسبة لك، ولكن لا شيء يقول لك لا يمكن إعادة وظائف مماثلة، أليس كذلك؟

Splunk كبيرة للبحث من خلال الكثير من السجلات. قد تكون مبالغة لهذا الغرض الخاص. انت لا تدفع وفقا لكمية البيانات (حجم السجلات) تريد معالجتها. أنا متأكد من أن لديهم API لذلك لم يكن لديك لاستخدامها الأمامية إذا كنت لا ترغب في ذلك.

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