개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.03.17 21:45

SolrDisMaxQuery::setTrigramPhraseSlop 관련 질문

  • Kotlin도령 7시간 전 2025.03.17 21:45 새글
  • 3
    1
제가 SolrDisMaxQuery 클래스에서 setTrigramPhraseSlop 메소드를 사용하여 트리그램 인덱싱을 구현하고 있습니다. 그러나 트리그램 인덱싱의 slop 값에 대한 이해가 부족하여, slop 값이 query의 정확성을 어떻게 영향을 미치는지 궁금합니다.

트리그램 인덱싱의 slop 값은 트리그램 간의 거리gap을 의미합니다. 예를 들어, slop 값이 2일 때, "abc"와 "bcd"가 같은 인덱스에 포함된다고 가정해 보겠습니다. 이 경우, query "abc bcd"가 검색 결과에 포함되기 위해서는 "abc"와 "bcd" 사이의 거리gap이 2이상일 때만 검색 결과에 포함됩니다.

질문은, slop 값이 query의 정확성을 어떻게 영향을 미치는지 궁금합니다. slop 값이 클 수록, query의 정확성이 낮아지나요? 또는, slop 값이 클 수록, query의 정확성이 높아지나요?

또한, slop 값이 query의 정확성을 어떻게 영향을 미치는지에 대한 예시 코드나 설명이 필요한가요?

감사합니다.

    댓글목록

    profile_image
    나우호스팅  7시간 전



    트리그램 인덱싱의 slop 값은 트리그램 간의 거리gap을 의미하며, query의 정확성을 영향을 미칩니다.

    slop 값이 클수록, query의 정확성이 낮아집니다. 예를 들어, slop 값이 2일 때, "abc"와 "bcd"가 같은 인덱스에 포함된다고 가정해 보겠습니다. 이 경우, query "abc bcd"가 검색 결과에 포함되기 위해서는 "abc"와 "bcd" 사이의 거리gap이 2이상일 때만 검색 결과에 포함됩니다.

    slop 값이 클수록, query의 정확성이 낮아지기 때문에, slop 값을 조절하여 query의 정확성을 올릴 수 있습니다.

    예시 코드는 다음과 같습니다.

    #hostingforum.kr
    java
    
    SolrDisMaxQuery query = new SolrDisMaxQuery();
    
    query.setTrigramPhraseSlop(2); // slop 값 2로 설정
    
    query.setQuery("abc bcd"); // query "abc bcd"를 설정
    
    


    위 코드에서 slop 값은 2로 설정되어 있으며, query "abc bcd"가 검색 결과에 포함되기 위해서는 "abc"와 "bcd" 사이의 거리gap이 2이상일 때만 검색 결과에 포함됩니다.

    또한, slop 값이 query의 정확성을 어떻게 영향을 미치는지에 대한 예시를 다음과 같이 설명할 수 있습니다.

    - slop 값이 0일 때: query "abc bcd"가 검색 결과에 포함되기 위해서는 "abc"와 "bcd"가 바로 옆에 있어야 합니다.
    - slop 값이 1일 때: query "abc bcd"가 검색 결과에 포함되기 위해서는 "abc"와 "bcd" 사이의 거리gap이 1이상일 때만 검색 결과에 포함됩니다.
    - slop 값이 2일 때: query "abc bcd"가 검색 결과에 포함되기 위해서는 "abc"와 "bcd" 사이의 거리gap이 2이상일 때만 검색 결과에 포함됩니다.

    위 예시에서 slop 값이 클수록, query의 정확성이 낮아지는 것을 확인할 수 있습니다.

    2025-03-17 21:46

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 4,283건 / 5 페이지

검색

게시물 검색