تطبيق REST للتشاور مع المستخدم باستخدام FLS (البحث عن النص الكامل).
تنفيذ
$ docker -vللتحقق من التثبيت.
استنساخ المستودع ( $ git clone [email protected]:gustavo-flor/find-user-service.git ) ؛
تفضل بزيارة المجلد المستنسخ ( $ cd find-user-service )؟ ️ ؛
قم بتشغيل بناء التطبيق ( $ ./mvnw clean install -DskipTests=true ) ؛
تسلق الخدمة وتبعياتها ( $ docker compose up ) ؛
نحن مستعدون لاستخدام التطبيق من خلال نقطة النهاية http://localhost:8080/search ؟
الوصول إلى بيئة "الإنتاج" لاختبار التطبيق.
من المهم أن نلاحظ أنه ليس مضيفًا مخصصًا ، لذلك من المتوقع أن تكون العدس أو قيود refukes. في أول وصول قد يحدث تأخير للاستجابة.
الحصول على | /search?query={terms} | json
المستخدمين الذين تم العثور عليهم بناءً على الشروط المرسلة ، تم طلبهم وفقًا لأهمية المستخدمين وتوافقهم مع الشروط.
المصطلحات : كل كلمة مفصولة بمساحة هي مصطلح (إذا كانت هناك حاجة لاستخدامها للبحث عن جملة محددة ، فقط أرسل الجملة بين عروض الأسعار المزدوجة)
أمثلة:
query=Pedro Gabriel : سيبحث التطبيق عن المستخدمين الذين يفكرون في مصطلح "Peter" أو "Gabriel" (أو مشتقاته ، أشرح ذلك بشكل أفضل في موضوع "التفاصيل + أهداف ...") ؛
query="Pedro Gabriel" : سوف يبحث التطبيق من المستخدمين الذين يفكرون بالضبط في مصطلح "Pedro Gabriel" ؛
query="Pedro" Gabriel : سيبحث التطبيق من المستخدمين الذين يفكرون بالضبط في مصطلح "Peter" أو يفكرون في "Gabriel" (أو مشتقاتهم).
| المعلمة | وصف | إلزامي |
|---|---|---|
| استفسار | شروط البحث. | نعم |
| من | الصفحة ، يبدأ عدد الصفحة في 0. القيمة القياسية: 0. | لا |
| مقاس | يحد المستخدمون لكل صفحة. القيمة القياسية: 15. | لا |
| تصحيح | يضيف إلى عودة المستخدمين إلى ملاحظة الأهمية والتوافق مع المصطلحات المرسلة. القيمة القياسية: قيم خاطئة ، مسموح بها [صواب ، خطأ]. | لا |
مثال:
$ curl http://localhost:8080/search ? query=%22pedra%22 {
"from" : 0 ,
"size" : 15 ,
"data" : [
{
"id" : "9f64853b-f164-4b13-a3d7-1fdb9977e516" ,
"name" : "Jeferson Pedra" ,
"username" : "jeferson.pedra"
} ,
{
"id" : "b4026e35-932c-4943-b0db-7dd31eca5597" ,
"name" : "Stefane Pedra Zimiani" ,
"username" : "stefane.pedra.zimiani"
}
]
}عودة المستخدم مع
debug: true
{
"textScore" : 1.5 ,
"id" : "482c46f3-a27c-4f1a-abd0-3039ede21fdd" ,
"name" : "Gustav Berghahn" ,
"username" : "gustav.berghahn" ,
"relevance" : 3
} كانت الحاجة إلى إنشاء تطبيق قابل للتطوير وعالي الأداء يمكن أن يبحث من خلال واحد أو أكثر من مستخدمين لقاعدة بيانات معينة وطلبهم وفقًا لأهميتها. مع العلم أن هذا تم اختياره لإنشاء تطبيق SPRING + MONGODB.
ليس لدينا نقطة نهاية لتضمين مستخدمين جدد ، يتم تضمينهم عند تسلق التطبيق بناءً على الملفات الموجودة في مجلد Java Project
resources.
ما هي الدوافع لاستخدام الربيع؟
أولاً والأهم من ذلك هو الإلمام بالإطار ، ولكن أيضًا سهولة إنشاء وتكوين API REST معها ، بالإضافة إلى تسهيل التكوين مع MongoDB وغيرها من منصات نشر (Heroku).
ما هي الدوافع لاستخدام mongodb؟
مع العلم حاجتنا ، يمكننا أن ندرك أنه لن يتعين علينا التعامل مع أي علاقة داخل قاعدة البيانات الخاصة بنا ، لذلك سيكون سببًا رائعًا ، ولكن السبب الرئيسي الذي يجعلني لا أستطيع الكذب: P كان ميزة البحث النصية الخاصة بك ... fts tadãã !!!
مزايا وعيوب البحث عن النص الكامل ...
من خلال فهرسة نصوص البحث للبحث ، ينتهي FTS بتقديم الكثير من الأداء مقارنة بخيارات مثل "Like" ، وهذا الحل متخصص في البحث عن المصطلحات ، وغالبًا ما يمكن أن يؤدي البحث بشكل صحيح أكثر بكثير وبسرعة أكبر.
عيبه الأكبر والعدو هو: FTS ليس "مثل" ، وفي البداية من الصعب فهم هذا ، لا يمكننا إرسال نصف مصطلح ونعتقد أن البحث سيعمل كما نتوقع.
مع العلم بالبحث عن المزيد من الصواب ، من المثالي معرفة جميع الاحتمالات التي تمنحناها FTS من خلال وثائقها.
مستودع مع تطبيق ويب لاستهلاك هذه الخدمة ، Find-User-Web [قيد التطوير].
لا تتردد في إنشاء تحسينات لهذا الحل ⚗ ، عناق كبير!