
트리그램 인덱싱의 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