سؤال

وأنا حاليا بتشغيل Lucene.net في تطبيق ويب وأنا أتساءل عن أفضل طريقة، الأداء الحكمة.

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

ولكن للبحث - أنا فتح حاليا وإغلاق الباحث في البحث، الذي أعلم أنه ليس مثاليا

.

ما رأيك سيكون أفضل نهج في هذه الحالة؟

وسوف تحتاج إلى إغلاق وإعادة فتح الباحث المؤشر مرة واحدة تتم معالجة التحديثات / الأمثل وبالتالي فإن عملية المجدولة (وهو إطارات وحدة التحكم التطبيق) تحتاج إلى التواصل كل شيء قد انتهى إلى تطبيق ويب.

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

المحلول

وأنا فقط متكاملة Lucene.NET إلى BugTracker.NET. لست متأكدا من أن ما فعلته هو الأفضل، ولكن يبدو أن تعمل بشكل جيد.

وأنا إنشاء الفهرس عند بدء التشغيل التطبيق.

وأنا إنشاء الباحث والاحتفاظ بها في جميع أنحاء بحيث لا يتم إعادة تحميل المؤشر مع كل بحث. جميع المواضيع يشتركان فى نفس الباحث. عندما يبحث الباحث، والاستيلاء على القفل.

وفي الوقت نفسه، لدي IndexWriter يقوم بتحديث المؤشر عندما يكون هناك تغيير البيانات. انها مجرد تغيير قليلا لذلك لا مهمتها سريعة. عند تشغيله، والاستيلاء على نفسه قفل، ويدمر الباحث، بتحديث مؤشر، وإعادة بإعادة-الباحث. الباحث الجديد يبقى حولها حتى التحديث القادم للمؤشر. الباحث دائما تعمل مع فهرس ما يصل إلى التاريخ.

ويمكنك الحصول على مصدر BugTracker.NET وإلقاء نظرة على my_lucene.cs الملفات وsearch_text.aspx. كل شيء في هذه الملفات اثنين، وليس هناك أن الكثير من التعليمات البرمجية.

نصائح أخرى

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

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