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 통해 응용 프로그램을 사용할 준비가 되었습니까?
"생산"환경에 액세스하여 응용 프로그램을 테스트하십시오.
전용 호스트가 아니므로 렌즈 든 또는 리쿠 스의 한계가 예상됩니다. 첫 번째 액세스에서는 응답에 대한 지연이 발생할 수 있습니다.
얻기 | /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폴더에있는 파일을 기반으로 응용 프로그램을 등반 할 때 포함됩니다.
봄 사용에 대한 동기는 무엇입니까?
첫째 가장 중요한 것은 프레임 워크에 대한 친숙 함뿐만 아니라 MongoDB 및 기타 배포 (Heroku) 플랫폼을 통한 구성을 용이하게 할뿐만 아니라 API REST를 작성하고 구성 할 수 있습니다.
MongoDB의 사용에 대한 동기는 무엇입니까?
우리의 필요를 알면, 우리는 데이터베이스 내에서 어떤 관계도 다룰 필요가 없다는 것을 깨달을 수 있으므로 큰 이유가 될 것입니다. 그러나 내가 거짓말을 할 수없는 주된 이유는 다음과 같습니다.
전체 텍스트 검색의 장점과 단점 ...
검색에 대한 검색 텍스트를 색인화함으로써 FTS는 "Like"와 같은 옵션과 비교하여 많은 성능을 가져 오는 용어를 전문으로하므로 종종 검색을 훨씬 더 빨리 수행 할 수 있습니다.
가장 큰 단점과 적은 다음과 같습니다. FTS는 "좋아요"가 아니며, 처음에는 이것을 이해하기가 어렵습니다. 우리는 용어의 절반을 보낼 수 없으며 검색이 예상대로 작동한다고 믿습니다.
더욱 올바른 검색을 위해 이것을 아는 것은 FTS가 문서를 통해 우리에게 제공하는 모든 가능성을 실제로 아는 것이 이상적입니다.
이 서비스를 소비 할 웹 애플리케이션이있는 저장소 인 Find-User-Web [개발 중].
이 솔루션에 대한 개선 사항을 자유롭게 만들어주십시오.