使用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或Refukes的局限性。在第一個訪問中,可能會發生延遲以進行響應。
獲取| /search?query={terms} | json
根據發送的條款找到的用戶,根據用戶與該條款的相關性和兼容性訂購。
術語:每個被空間分開的單詞都考慮一個術語(如果需要搜索特定句子,只需在雙引號之間發送句子)
示例:
query=Pedro Gabriel :該應用程序將尋找考慮“ Peter”或“ Gabriel”一詞的用戶(或其衍生產品,我在“詳細信息 +目標...”的主題中更好地解釋了這一點);
query="Pedro Gabriel" :該應用程序將尋求確切考慮“ Pedro Gabriel”一詞的用戶;
query="Pedro" Gabriel :該應用程序將尋求確切考慮“ Peter”或“ Gabriel”(或其衍生產品)的用戶。
| 範圍 | 描述 | 強制的 |
|---|---|---|
| 詢問 | 搜索條款。 | 是的 |
| 從 | 頁面計數從0。標準值開始:0。 | 不 |
| 尺寸 | 用戶每頁限制。標準值:15。 | 不 |
| 偵錯 | 將用戶返回與已發送的條款的相關性和兼容性註釋。標準值:false,允許的值[true,false]。 | 不 |
例子:
$ 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休息,並促進使用MongoDB和其他部署(Heroku)平台進行配置。
使用MongoDB的動機是什麼?
知道我們的需求,我們可以意識到我們將不必處理數據庫中的任何關係,因此這是一個很好的原因,但是我不能撒謊的主要原因是:P是您的文本搜索功能... ftstadãã!
全文搜索的優點和缺點...
通過索引搜索的搜索文本,FTS最終帶來了與“喜歡”這樣的選項相比,該解決方案專門研究術語,因此通常可以更正確,更快地執行搜索。
它最大的缺點和敵人是:FTS不是“像”,起初很難理解這一點,我們不能發送一半的學期,並且相信搜索將按照我們的期望進行。
知道這一點是為了進行更正確的搜索,真正了解FTS通過其文檔給我們的所有可能性是理想的選擇。
使用Web應用程序的存儲庫來消費此服務,Find-user-web [正在開發]。
隨意為此解決方案創造改進,大大擁抱!