김치찌개
87
2020-11-06 16:46:33
10
275

파이어베이스 검색기능은 어떻게 구현하나요?



db.collection('board')
        .where('title', '>=', search)
        .where('title', '<=', search + '\uf8ff')
        .get()


스택오버플로우에서 이런식으로 구현하는 것 같길래 해봤는데,

값이 나올때도 있고 안나올때도 있고 뒤죽박죽이에요

게시판 검색기능을 구현해보고 싶은데 막힌 상태입니다.

파이어베이스에서는 Algoria 라는 서비스를 사용하라고 하는것 같은데,

(https://firebase.google.com/docs/firestore/solutions/search?hl=ko)

간단한 개인 프로젝트라서 파이어베이스로만 구현을 하고 싶어요.

쿼리만으로 텍스트필드에 포함된 문자를 검색할 수 있을까요

0
  • 답변 10

  • 마샤와곰
    142
    2020-11-06 16:54:54 작성 2020-11-06 16:55:12 수정됨

    자바스크립트 기준이신거 같네요~

    아래 제가쓴 글을 한번 참조하여보세요.^^

    https://lts0606.tistory.com/337

  • 김치찌개
    87
    2020-11-06 16:57:09

    추가 질문입니다.

    https://stackoverflow.com/questions/46568142/google-firestore-query-on-substring-of-a-property-value-text-search


    array-contains 를 사용해 키워드화 시켜서 저장하라고 하는 것 같습니다.

    title 이 '파이어베이스 검색기능은 어떻게 구현하나요?' 라면

    title : [

      '파이어베이스',

      '검색기능은',

      '어떻게',

      '구현하나요?'

    ]

    이렇게 나눠서 사용해도 괜찮은건가요?

  • UnknownDontknow
    609
    2020-11-06 17:00:40

    Full text search는 제공되지 않아서 Algoria, Elastic search같은 외부 서비스를 사용하라고 가이드 해주는 것으로 알고있어요.

    Firestore 만으로는 okky 검색시 순차적인 검색인 o, ok, okk, okky 이런식의 검색만 가능할거에요

  • 김치찌개
    87
    2020-11-06 17:02:24

    @마샤와곰

    감사합니다. 정리가 잘되어있어서 참고가 되었습니다.

    그런데 텍스트 필드 검색은 없는것 같아요 ㅜㅜ

  • 김치찌개
    87
    2020-11-06 17:03:01

    @UnknownDontknow 답변 감사합니다. 다른방법을 찾아봐야겠어요 .. 

  • 마샤와곰
    142
    2020-11-06 17:06:03

    필드 검색도 있습니다;;;

    물론 값을 논리값(boolean) 형태로 검색한 모습이라서 햇갈리신거 같네요.

    해당부분을 찾으실 필드로 바꾸신다음에 검색하시면 됩니다.

  • 김치찌개
    87
    2020-11-06 17:16:11

    @마샤와곰

    ref.where('booleans', '==', false)

    따라해본 부분입니다. 


    게시판을 구현중인데,

    예를들어 작성자를 찾을때

    db.collection('board').where('author', '==', search)

    이런식으루 쓰면 마샤와곰님이 말씀하시는것처럼 나오는데, 제목에 포함된 문자로 검색을 할땐 안나오더라구요 


  • 마샤와곰
    142
    2020-11-06 17:44:59

    아..이해했습니다. ^^;;;

    쿼리 연산자를 찾으시면 쉽게 해결 가능합니다.

    아래 파이어베이스 홈페이지에서 있는 내용을 한번 살펴 보세요.

    https://firebase.google.com/docs/firestore/query-data/queries?hl=ko

  • 김치찌개
    87
    2020-11-06 17:47:30

    감사합니다. 해보겠습니다 !!

  • 마샤와곰
    142
    2020-11-06 17:52:06

    기억이 잘 나지는 않는데, like같은 것은 함수로 되어 있던걸로 기억합니다!

    startAt 이런식의 함수였던걸로 기억해요~

  • 로그인을 하시면 답변 을 등록할 수 있습니다.