Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

마이페이지에서 작성글, 관심목록, 구매목록을 조회하기 위한 미들웨어 추가 #85

Closed
wants to merge 8 commits into from

Conversation

kgpyo
Copy link
Contributor

@kgpyo kgpyo commented Dec 12, 2019

PR에 대한 요약

  • 개인이 판매하고 있는 물품을 조회하기 위해 기존 일래스틱 서치에서
    비공개 글을 색인하지 않았던 부분 제거
  • 모든 글을 색인하되, 단순 조회시 비공개글을 조회가 불가능하도록
    필터 추가

PR에 대한 동기와 상황에 대한 설명 부탁드립니다.

  • 현재 api에서는 글 작성/수정시 비공개 상태이면 색인을 하지 않도록 설정되어있습니다.
  • 이때, 사용자가 자신이 작성한글을 조회할 때 몽고DB의 단순 query를 사용해도 되지만 일래스틱 서치를 활용하기 위하여 기존 일래스틱 서치에서 필터링을 걸었던 부분을 제거하고, 데이터 조회시 query로 해당 부분을 제거하도록 하였습니다.
  • 관심목록정보를 product 테이블에 유지하여 해당 내용을 조회할수 있게 구현

이번 코드는 어떻게 테스트 되었나요?

  • 테스트 코드는 없습니다.

결과물 스크린샷 (선택) :

어떤 변화인가요?

  • Bug fix (큰 변화없이 이슈를 고칩니다.)
  • New feature (큰 변화없이 기능을 추가합니다.)
  • Breaking change (기능을 추가하거나, 수정함으로서 기존의 기능에 영향을 줄 수 있습니다.)

체크리스트:

  • 본 프로젝트의 코드 스타일을 따랐습니다.
  • 이번 변화에 대한 결과로, 본 프로젝트의 문서를 수정해야 합니다.
  • 이에 따라 본 프로젝트의 문서를 적절히 갱신하였습니다.

본 PR은 다음 이슈에 해당하는 내용입니다.

Closes #29 #84

- 개인이 판매하고 있는 물품을 조회하기 위해 기존 일래스틱 서치에서
비공개 글을 색인하지 않았던 부분 제거
- 모든 글을 색인하되, 단순 조회시 비공개글을 조회가 불가능하도록
필터 추가
@kgpyo kgpyo requested review from sukjae and Johnie-Yeo December 12, 2019 15:02
- 개인 사용자의 구매내역과, 관심목록을 조회하기 위해 이를 검색
할 수 있는 쿼리 추가
- 별도의 테이블을 유지하는 것보다 하나의 테이블내에서 처리하는 것이
간편하기 때문에 interest내에서 숫자 카운트대신에 회원 아이디정보 저장
@kgpyo kgpyo changed the title 개인이 작성했던 글을 조회하기 위한 라우터 추가 마이페이지에서 작성글, 관심목록, 구매목록을 조회하기 위한 미들웨어 추가 Dec 12, 2019
Copy link
Collaborator

@sukjae sukjae left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

늦은 시간 고생 많으셨습니다~

- 유사어 검색을 위해 fuzziness사용, 글자수에 따라 허용되는 편집거리
가 달라지게 하기 위해서 auto 옵션 사용(최대 2글자)
- 검색결과가 최신순만이 아니라 정확도 - 날짜순으로 배치되어야 하므로
_score 필드에 대한 정렬 추가
Copy link
Collaborator

@Johnie-Yeo Johnie-Yeo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

고생하셨습니다.

@@ -89,6 +90,12 @@ const productSchema = new Schema({
es_type: 'string',
es_indexed: true,
},
buyer: {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

구매자는 왜 들어가나요?

Copy link
Contributor Author

@kgpyo kgpyo Dec 16, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

구매목록을 조회하기 위함입니다.

- 자동완성을 구현할 때, '아이폰XR팝니다'를 보여주는 것이 아닌 '아'
를 입력하면 '아이폰'만 자동완성이 되게 하기 위해서 사용자가 등록한
제목을 anaylzer의 분석결과를 다시 keyword index로 저장하여 이를
사용
- 중복된 데이터 삽입을 방지하기 위해 해당 collection에서 word를
index로 지정하여 처리
- 사용자 정의 메소드 search는 모두 동일한 함수이고 공통으로 사용
되기 때문에 별도의 common폴더를 생성하여 분리
- elasticsearch와 연결하기 위해 hosts에 port정보와 함께 넣으면
no living connection 오류가 발생하므로, hosts정보와 port 정보를분리
- 키워드는 단순 목록만 출력하기 때문에 info와 묶어서 지정
- 테스트를 진행할때 순수 함수 테스트이므로 elastic search에 연결하는
과정 제거
- DB가 접속되지 않을 때 서버를 종료하여 api연결 시 실패 원인을 모르는
것보다, 500 에러를 출력하여 왜 처리가 안되는지 명확히 표시하여
클라이언트내에서 다른 처리가 가능하도록 하기 위해 변경
- 불필요한 파일 제거
- 뱌
@kgpyo kgpyo force-pushed the product-api/search branch from 704435f to 861698b Compare December 17, 2019 08:01
@kgpyo kgpyo closed this Dec 17, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants