• 로그인
  • 장바구니에 상품이 없습니다.

home2 게시판 Node.js, Express 게시판 검색기능 만들기 3 질문

검색기능 만들기 3 질문

6 글 보임 - 1 에서 6 까지 (총 6 중에서)
  • 글쓴이
  • #28924

    서정우
    참가자

    진도를 나가던 도중 이전까지는 검색기능이 잘 작동 했지만 search index를 적용하면서 검색기능이 작동이 안돼 질문 드립니다.

    키워드를 검색창에 입력시 아무것도 브라우저와 콘솔 모두 아무런 에러가 나오지 않습니다.

    server.js

    ...

            app.get("/search", function (req, res) {
              let searchConditions =[
                {
                  $search: {
                    index: 'titleSearch',
                    text: {
                      query: req.query.value,
                      path: 'title'  // 제목날짜 둘다 찾고 싶으면 ['제목', '날짜']
                    }
                  }
                }
              ];
              db.collection("post").aggregate(searchConditions).toArray(function (err, result) {
                res.render("list", { posts: result });
              });
            });

    ...

    #28950

    codingapple
    키 마스터

    /search로 요청시

    서버에서 콘솔창에 req.query 이런거 뭐가 나오나 출력해봅시다 

    #28958

    서정우
    참가자

    req.query.value 에 입력한 검색 키워드가 알맞게 출력됩니다

    #28991

    codingapple
    키 마스터

    index만들 때 title 필드를 기입해서 만들어보거나 

    index: titleSearch 부분을 빼고 찾거나 그래봅시다 아니면 한글은 구려서 정확한단어 아니면 못찾을 수 있습니다

     

    #29019

    서정우
    참가자

            app.get("/search", function (req, res) {
              let searchConditions =[
                {
                  $search: {
                    // index: 'titleSearch',
                    text: {
                      query: req.query.value, //입력된 키워드 정상 출력
                      path: 'title'  // 제목날짜 둘다 찾고 싶으면 ['제목', '날짜']
                    }
                  }
                }
              ];
              db.collection("post").aggregate(searchConditions).toArray(function (err, result) {
                res.render("search", { posts: result });
              });
            });

    인덱스 수정 전 일단 index: titleSearch 부분을 빼고 찾아보았는데 역시나 똑같아서

    인덱스를 수정 해 타이틀을 넣고 다시 

            app.get("/search", function (req, res) {
              let searchConditions =[
                {
                  $search: {
                    index: 'titleSearch',
                    text: {
                      query: req.query.value, //입력된 키워드 정상 출력
                      path: 'title'  // 제목날짜 둘다 찾고 싶으면 ['제목', '날짜']
                    }
                  }
                }
              ];
              db.collection("post").aggregate(searchConditions).toArray(function (err, result) {
                res.render("search", { posts: result });
              });
            });

    이상태로 해보았으나 그래도 안돼서

     index: 'titleSearch', 이부분을 다시 주석 처리하고 진행했으나 여전히 똑같습니다 ㅠㅠ

    #29021

    서정우
    참가자

    필드 기입후 아까는 데이터 타입을 설정을 안해줬는데 다시 해주니 잘 됩니다 

6 글 보임 - 1 에서 6 까지 (총 6 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠