


يهدف هذا المشروع إلى استكشاف تشغيل Solrnet في استهلاك خدمة SOLR محرك البحث في المشاريع. NET CORE.
بعد استنساخ المشروع واتبع الخطوات الموضحة في خطوة التثبيت.
git clone https://github.com/AntonioFalcao/SolrDotnetSample.gitالبيئة ضرورية مع الموارد التالية:
للتحقق من هذه الوظيفة:
dotnet --versionلمزيد من التفاصيل
dotnet --infoللتثبيت:
dotnet tool install --global dotnet-efللتحقق من هذه الوظيفة:
dotnet-ef --versionللتحقق من هذه الوظيفة:
docker --versionمع استخدام الحاويات ، يمكننا عملياً توفير البنية التحتية اللازمة.
في البداية ، سنستخدم خدمة SOLR لتلبية الحاجة إلى محرك البحث من خلال Compose ./solr-compose .
docker-compose -f solr-compose.yml up -d يتم تعريف الفهرس القياسي ، المشار إليه باسم Solr Core على أنه my_core في entrypoint ، بالإضافة إلى تعيين المنفذ القياسي 8983:8983 :
services :
# comment for brevity
ports :
- " 8983:8983 "
entrypoint :
- solr-precreate
- my_core
# comment for brevity يعد تعريف الحقول في SOLR خطوة أساسية ، لضمان أن يكون للبيانات نفس التمثيل المطلوب بواسطة النموذج.
هناك طريقتان للقيام بذلك ، إحداهما هي تحديد تفاصيل الحقول في schema.xml ، والطريقة الأخرى هي إجراء مكالمات مباشرة إلى واجهة برمجة تطبيقات الخدمة. بالنسبة للبديل الثاني ، هناك ملف solr-add fields.http متوفر في المشروع:
POST http://localhost:8983/solr/my_core/schema
Content-Type: application/json
{
"add-field" :{
"name" : " Description " ,
"type" : " string " ,
"stored" : true
},
"add-field" :{
"name" : " Title " ,
"type" : " string " ,
"stored" : true
},
}
### comment for brevity بمجرد توفير البيئة وتكوين الحقول ، يمكننا زرع البيانات من خلال الخطوات:
في هذه المرحلة ، سيحدث زراعة البيانات إلى DB العلائقية.
dotnet ef database update -s ./src/SolrDotnetSample.WebApi/ -p ./src/SolrDotnetSample.Repositories/سيتوفر خياران ، و
- إنشاء بيانات جديدة.
- ترحيل البيانات العلائقية.
docker build -t seed -f ./consoleApp.Dockerfile . && docker run -it seedيمكن تنفيذ اختبارات الوحدة والتكامل بأمرهم:
dotnet test لتنفيذ الاختبارات وظيفيًا ، يجب علينا تنفيذ المشروع في البداية لإتاحة خدمة الويب.
docker build -t webapi -f ./webApi.Dockerfile . && docker run -p 5000:5000 webapi يتبع التوجيه
http://hostname:port/api/v{version}/controller
لإجراء المكالمات ، قد تستخدم ملف ./basic-api-call.http من خلال امتداد عميل REST ، على سبيل المثال:.
/api/v1/...يستخدم قاعدة البيانات العلائقية.
/api/v2/...يستخدم solr
### V1 - Relational DB
GET http://localhost:5000/api/v1/posts
### V2 - NoSql DB
GET http://localhost:5000/api/v2/posts
### V1 - Relational DB
POST http://localhost:5000/api/v1/posts
Content-Type: application/json
{
"Description" : " Description " ,
"ExpiryDate" : " 2020-01-01 " ,
"IsActive" : true ,
"IsSold" : true ,
"PostDate" : " 2020-01-01 " ,
"Price" : 0 ,
"Title" : " Title "
}
### comment for brevity تفاصيل عن المطحنة (CI/CD) متوفرة في إجراءات GitHub Project
متاح قريبا!
نستخدم Semver للنسخة. للحصول على الإصدارات المتاحة ، راجع العلامات الموجودة على هذا المستودع.
انظر أيضًا قائمة المساهمين الذين شاركوا في هذا المشروع.
تم ترخيص هذا المشروع بموجب ترخيص معهد ماساتشوستس للتكنولوجيا - راجع ملف الترخيص.