使用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 [正在开发]。
随意为此解决方案创造改进,大大拥抱!