퍼대기
458
2021-10-01 17:55:33 작성 2021-10-01 17:56:33 수정됨
3
222

주소 검색에서 이런 LIKE 절은 어떻게 했을까요?



DB에는 맑은미소아파트 라고 되어 있는데, 미소맑은아파트로 검색이 되네요.



0
  • 답변 3

  • HJOW
    3k
    2021-10-01 17:59:30 작성 2021-10-01 18:00:37 수정됨

    두가지 가능성이 있을 것 같습니다.


    1. 주소 데이터에 저 내용을 통째로만 저장한 것과 별개로 단어별로 쪼개서 따로 저장해놨을 경우

    2. 검색어 입력 시 단순 LIKE로 검색하지 않고 단어를 모두 쪼개 하나하나 LIKE를 붙여 조회하는 경우


    어짜피 주소에는 조사가 없으니까요. 띄어쓰기로만 쪼개도 분리가 가능하죠. (괄호와 콤마만 조심하면)

  • esrse
    1k
    2021-10-01 18:10:24

    한국어로 제대로 검색을 하고 싶으면 DB의 LIKE검색 관념을 버려야 됩니다.

    한국어 검색에서 가장 핵심적인 역할을 하는 게 형태소 분석기입니다.

    형태소 분석을 해서 분절된 텀이 나오고, 그 텀을 색인시키게 됩니다.

    맑은미소아파트 라는 텍스트가 있으면 이걸 형태소 분석을 하면 맑은/미소/아파트 로 나눠집니다.

    3텀이 되는 거고, 3개의 텀으로 이 주소를 찾을 수 있습니다.

    그러면 맑은 으로 검색해도 나오고, 미소로 검색해도 나오고 맑은/미소 로 검색해도 나오고 미소/맑은 으로 검색해도 나옵니다.


  • 쿠잉
    4k
    2021-10-01 18:26:55

    fulltext 또는 Elasticsearch

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