사선도ql로 추천 엔진 구축 - 섹션 2

[TL;DR: 이 시리즈의 두 번째 부분에서 저는 원본 추천 엔진을 미세하게 조정하여 보조 데이터 원본을 추가하고 각도 클라이언트를 작성하여 데이터를 사용합니다.]
""글에서 최근에 발표된 Slash GraphQL에서 관리되는 GraphQL 백엔드 Dgraph은 Java 기반 추천 엔진의 기록 시스템으로 사용됩니다.도형 데이터 저장은 추천 엔진 등 용례에 매우 적합한데 그 중에서 데이터 간의 관계는 데이터 자체와 마찬가지로 중요하다.Slash GraphQL을 사용하면 완전히 관리된 GraphQL 데이터베이스를 신속하게 구축하고 최소한의 작업량으로 실행할 수 있습니다.
본고는 Slope One 시리즈의 협동 필터링 알고리즘을 어떻게 활용하여 기존의 등급에 따라 제품의 흥미 수준을 예측하는지 깊이 있게 이해했다.요컨대 사율 1 평점 알고리즘은 추천 엔진의 핵심이 될 것이다.
본고는 마지막으로 Spring Boot 추천 엔진에 RESTful URI를 제공함으로써 Dgraph Slash GraphQL SaaS 서비스에 저장된 데이터를 추천합니다.
본고는 이러한 데이터를 더욱 쉽게 사용할 수 있는 각도 클라이언트를 소개하고자 한다...재밌게 봐주셨으면 좋겠습니다.

Data Domain의 향상된 기능


비록 원시 문장은 추천 엔진의 작업 원리를 보여 주었지만, 나는 나의 원시 데이터 샘플이 소수의 샘플 고객에게 너무 많은 등급을 제공했다고 생각한다.그 밖에 나는 두 번째 예에서 사용하는 예술가의 수를 확대해야 한다고 생각한다.
그래서 기존 Slash GraphQL 데이터베이스에서 데이터를 지우고 다시 시작했습니다.쉽게 업데이트할 수 있지만 이 연습에서는 인프라를 변경할 필요가 없으며 다음과 같이 유지됩니다.
type Artist {
   name: String! @id @search(by: [hash, regexp])
   ratings: [Rating] @hasInverse(field: about)
}

type Customer {
   username: String! @id @search(by: [hash, regexp])
   ratings: [Rating] @hasInverse(field: by)
}

type Rating {
   id: ID!
   about: Artist!
   by: Customer!
   score: Int @search
}
슬래시 그래픽 QL 사용자 인터페이스의 다음 변형을 사용하여 예술가 프로젝트의 새 목록을 추가합니다.
mutation {
 addArtist(input: [
   {name: "Eric Johnson"},
   {name: "Genesis"},
   {name: "Journey"},
   {name: "Led Zeppelin"},
   {name: "Night Ranger"},
   {name: "Rush"},
   {name: "Tool"},
   {name: "Triumph"},
   {name: "Van Halen"},
   {name: "Yes"}]) {
   artist {
     name
   }
 }
}
업데이트된 고객 기록도 삽입되었습니다.
mutation {
 addCustomer(input: [
   {username: "David"},
   {username: "Doug"},
   {username: "Jeff"},
   {username: "John"},
   {username: "Russell"},
   {username: "Stacy"}]) {
   customer {
     username
   }
 }
원본과 같은 돌연변이를 사용하여 다음 표에 따라 등급을 추가합니다.

H2(메모리) 데이터베이스 소개


두 번째 글에 대해 나는 추가 데이터 원본을 소개하고 싶다.이렇게 하면 정보와 사실이 왕왕 여러 개의 데이터 원본에서 나온다는 사실이 두드러질 것이다.나는 개원된 경량급 메모리 자바 데이터베이스인 H2을 사용하기로 결정했다.H2 데이터베이스는 다음 Maven 종속성을 사용하여 Spring Boot에 빠르고 쉽게 추가할 수 있습니다.
<dependency>
   <groupId>com.h2database&lt;/groupId>
   <artifactId>h2&lt;/artifactId>
   <scope>runtime&lt;/scope>
</dependency>
H2 데이터베이스는 슬래시 그래픽 QL에 저장된 아티스트 레코드에 대한 추가 정보를 제공합니다.레코드는 Artists라는 테이블에 저장되며 주 키는 예술가의 이름만 사용됩니다.
@Data
@Entity
@Table(name = "artists")
public class Artist {
   @Id
   private String name;
   private String yearFormed;
   private boolean active;
   private String imageUrl;
}
A 데이터.이 테이블 정보를 포함하는 sql 파일은 Spring 부트 저장소의 리소스 폴더에 생성되어 저장됩니다.따라서 서버가 시작될 때마다 H2 데이터베이스가 채워집니다.

개선 제안 엔진


추천 엔진의 값을 보기 위해 엔진이 제공하는 결과는 추천에 관한 모든 필요한 정보를 포함해야 한다.이러한 요구 사항을 충족하기 위해 다음과 같이 더 많은 예술가 속성을 포함하기 위해 응답에서 제안된 유효 부하를 업데이트했습니다.
{
   "matchedCustomer": {
       "username": string
   },
   "recommendations": [
       {
           "name": string,
           "yearFormed": string,
           "active": boolean,
           "imageUrl": string,
           "rating": number,
           "score": number
       } ...
   ]
}
엔진은 두 가지 추가 메타데이터를 수용하기 위해 향상되어야 합니다.
  • 현재 선정된 예술가
  • 현재 고객
  • 현재 선정된 예술가에 대한 이해를 통해 추천 엔진은 같은 예술가에 대한 추천을 배제한다는 것을 알게 될 것이다.그 밖에 현재 고객의 능력을 이해하는 것은 마음대로 고객을 선택하는 수요를 피할 수 있다.

    각진 고객을 소개하다


    클라이언트를 신속하게 만들기 위해서 나는 Angular CLI을 사용하기로 결정했다.Angular CLI는 명령줄 인터페이스로 구성 요소, 서비스, 기본 기능을 신속하고 쉽게 만들고 세분화하여 개발자가 현재의 수요를 충족시키기 위해 업무 논리를 작성하는 데 전념할 수 있도록 합니다.이것은 내 기술의 이상적인 선택이다.
    짧은 시간 내에 Angular CLI를 사용하여 다음 항목을 설명할 수 있습니다.
  • Spring Boot의 예술가, 고객, 추천 대상에 연결된 서비스
  • 예술가의 구성 요소를 열거하고 예술가의 간단한 목록을 제공합니다.
  • 활동 고객과 예술가에 대한 조언을 표시하기 위해 예술가 구성 요소 보기
  • 강력한 Angular와 npm 커뮤니티가 있기 때문에 저는 angular-star-rating과 cssstarrating 패키지를 사용할 수 있습니다. 이것은 도형화된 starrating 솔루션을 포함하고 명령과 기본 설정 변경을 포함합니다.물론 @ng-bootstrap과 bootstrap 가방도 포함돼 있어 스타일링이 더욱 아름답다.

    Angular 클라이언트 사용


    Angular 클라이언트를 구성하고 Spring 부트 권장 엔진을 실행하면 다음 URL을 사용하여 응용 프로그램을 시작할 수 있습니다.
    http://localhost:4200
    응용 프로그램을 로드하면 다음 화면이 표시됩니다.

    목록(list artists 구성 요소에서 온 것)은 H2 데이터베이스에 대한 정보와 Dgraph Slash GraphQL 데이터베이스의 평균 등급을 제공합니다.
    Rush 항목을 클릭하여 view artist 구성 요소를 호출하고 다음 정보를 표시합니다.

    이 예에서 나는 현재 고객으로 러셀을 선택했다.화면 상단에는 동일한 정보가 표시되고 오른쪽에는 이미지가 표시됩니다.다음은 Spring 부트 서비스의 권장 API에 대한 정보입니다.
    결과적으로 러셀이라는 고객에게 영합하고 러쉬라는 밴드의 조언을 피하고자 했다.
    고객이 Stacy로 변경하면 다음과 같이 동일한 화면이 업데이트됩니다.

    화면 상단의 데이터는 변하지 않지만 추천 부분은 완전히 다르기 때문에 새로 선택한 사용자에게 적합하다.

    결론


    본고에서 엔진을 클라이언트 응용 프로그램에 연결하고 더욱 개선하여 원시 문장보다 더 큰 가치를 제공하도록 추천한다.
    본 사례의 디자인은 매우 간단하지만 채택한 개념과 방법은 기능이 완비된 추천 엔진에 통합될 수 있다.
    Dgraph의 Slash GraphQL과 Spring Boot을 사용하면 출시 시간이 단축될 것입니다.그것들은 경험과 교훈을 바탕으로 한 원형 디자인, 분석과 새로운 디자인을 채택하는 것을 쉽게 한다.
    전체 소스 코드에 관심이 있는 사람은 slash-graph-ql-angular GitLab repository을 보십시오.

    좋은 웹페이지 즐겨찾기