แอปพลิเคชัน 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 ?
เข้าถึงสภาพแวดล้อม "การผลิต" เพื่อทดสอบแอปพลิเคชัน
เป็นสิ่งสำคัญที่จะต้องทราบว่าไม่ใช่โฮสต์เฉพาะดังนั้น Lentidons หรือข้อ จำกัด ของ refuks จึงคาดว่าจะเกิดขึ้น ในการเข้าถึงครั้งแรกอาจเกิดความล่าช้าสำหรับการตอบกลับ
รับ | /search?query={terms} | json
ผู้ใช้ที่พบตามข้อกำหนดที่ส่งสั่งซื้อตามความเกี่ยวข้องและความเข้ากันได้ของผู้ใช้กับข้อกำหนด
ข้อกำหนด : แต่ละคำที่คั่นด้วยพื้นที่จะพิจารณาคำว่า (หากมีความจำเป็นที่จะต้องใช้ในการค้นหาประโยคเฉพาะเพียงส่งประโยคระหว่างคำพูดสองครั้ง)
ตัวอย่าง:
query=Pedro Gabriel : แอปพลิเคชันจะมองหาผู้ใช้ที่พิจารณาคำว่า "Peter" หรือ "Gabriel" (หรืออนุพันธ์ของมันฉันอธิบายสิ่งนี้ได้ดีกว่าในหัวข้อ "รายละเอียด + เป้าหมาย ... ");
query="Pedro Gabriel" : แอปพลิเคชันจะแสวงหาผู้ใช้ที่พิจารณาคำว่า "Pedro Gabriel";
query="Pedro" 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
เราไม่มีจุดสิ้นสุดที่จะรวมผู้ใช้ใหม่พวกเขาจะรวมอยู่เมื่อปีนขึ้นไปตามแอปพลิเคชันตามไฟล์ที่มีอยู่ในโฟลเดอร์
resourcesโครงการ Java
อะไรคือแรงจูงใจในการใช้ฤดูใบไม้ผลิ?
สิ่งแรกและที่สำคัญที่สุดคือความคุ้นเคยกับเฟรมเวิร์ก แต่ยังง่ายในการสร้างและกำหนดค่าส่วนที่เหลือ API ด้วยเช่นเดียวกับการกำหนดค่าด้วย MongoDB และแพลตฟอร์มการปรับใช้อื่น ๆ (Heroku)
อะไรคือแรงจูงใจในการใช้ MongoDB?
เมื่อรู้ถึงความต้องการของเราเราสามารถตระหนักได้ว่าเราจะไม่ต้องจัดการกับความสัมพันธ์ใด ๆ ภายในฐานข้อมูลของเราดังนั้นนั่นจะเป็นเหตุผลที่ดี แต่เหตุผลหลักที่ฉันไม่สามารถโกหกได้: P คือคุณสมบัติการค้นหาข้อความของคุณ ... fts Tadãã !!!
ข้อดีและข้อเสียของการค้นหาข้อความแบบเต็ม ...
ด้วยการจัดทำดัชนีข้อความการค้นหาสำหรับการค้นหา FTS จะนำมาซึ่งการแสดงจำนวนมากเมื่อเทียบกับตัวเลือกต่าง ๆ เช่น "ชอบ" โซลูชันนี้เชี่ยวชาญในการค้นหาคำศัพท์ดังนั้นจึงสามารถทำการค้นหาได้อย่างถูกต้องมากขึ้นและเร็วขึ้น
ข้อเสียและศัตรูที่ใหญ่ที่สุดคือ: FTS ไม่ใช่ "เหมือน" และในตอนแรกมันยากที่จะเข้าใจสิ่งนี้เราไม่สามารถส่งครึ่งหนึ่งของคำและเชื่อว่าการค้นหาจะทำงานตามที่เราคาดหวัง
การรู้สิ่งนี้สำหรับการค้นหาที่ถูกต้องยิ่งขึ้นมันเหมาะอย่างยิ่งที่จะรู้ถึงความเป็นไปได้ทั้งหมดที่ FTS มอบให้เราผ่านเอกสาร
ที่เก็บด้วยเว็บแอปพลิเคชันเพื่อใช้บริการนี้ผู้ใช้-ผู้ใช้-เรา [อยู่ระหว่างการพัฒนา]
อย่าลังเลที่จะสร้างการปรับปรุงสำหรับโซลูชันนี้⚗กอดใหญ่!