본문으로 건너뛰기
cccskills
무료GitHub에 공개

fuzzy-ranking

Build fuzzy search that filters candidates and sorts them by relevance. Use saved match scores, search across multiple object fields, adjust acceptance thresholds, and connect ranking results to TanStack Table filtering and sorting.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

원문원문 설명 보기

Rank fuzzy matches with rankItem, filter with RankingInfo.passed, compare saved ranking metadata with compareItems, and configure rankings, thresholds, accessors, min/max bounds, or diacritics. Load for @tanstack/match-sorter-utils itself or fuzzy Table filterMeta wiring.

설치 방법 보기

이럴 때 유용합니다

  • Sort search results by relevance
  • Search names and email addresses together
  • Adjust which fuzzy matches are accepted
  • Connect fuzzy filtering and sorting in TanStack Table

포함된 파일(1)

  • SKILL.md3.4 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Setup

<!-- skill-snippet:check -->
import { compareItems, rankItem, rankings } from '@tanstack/match-sorter-utils'

const query = 'tan'
const values = ['table', 'tanner', 'router']
export const ranked = values
  .map((value) => ({
    value,
    info: rankItem(value, query, { threshold: rankings.MATCHES }),
  }))
  .filter((entry) => entry.info.passed)
  .sort((a, b) => compareItems(a.info, b.info))

Core Patterns

Separate ranking, filtering, and sorting

Call rankItem once, filter on info.passed, retain the RankingInfo, then order matching results with compareItems.

Rank object fields through accessors

type Person = { name: string; email: string }
const person: Person = { name: 'Ada Lovelace', email: 'ada@example.test' }
const info = rankItem(person, 'lov', {
  accessors: [(item) => item.name, (item) => item.email],
})

Accessor options can set a per-accessor threshold plus minRanking/maxRanking bounds.

Store ranking as Table filter metadata

In a Table filterFn, call addMeta?.({ itemRank }). Register the corresponding meta shape with filterMeta: metaHelper<{ itemRank: RankingInfo }>(). A related sortFn reads row.columnFiltersMeta[columnId]?.itemRank and uses compareItems, falling back to an ordinary comparator for ties or absent metadata. For the primary Table composition, load @tanstack/table-core#table-features and read its global-filtering reference. Register the fuzzy filter under filterFns for globalFilterFn: 'fuzzy'.

Common Mistakes

HIGH Numeric rank used as pass flag

Wrong: if (rankItem(value, query).rank) include(value).

Correct: test rankItem(value, query).passed.

Ranks below the configured threshold can still be nonzero; passed records the threshold decision.

Source: TanStack/table:packages/match-sorter-utils/src/index.ts

HIGH Ranking recomputed during sorting

Wrong: call rankItem for both rows on every comparator invocation.

Correct: retain RankingInfo during filtering and pass the stored values to compareItems.

Sorting is called many times; recomputing also risks using different query/options than the filter decision.

Source: TanStack/table:docs/framework/react/guide/fuzzy-filtering.md

MEDIUM compareItems direction reversed twice

Wrong: negate compareItems(a, b) because a larger rank should appear first.

Correct: use compareItems(a, b) directly for ascending fuzzy relevance.

The function already returns -1 when a.rank is greater than b.rank.

Source: TanStack/table:packages/match-sorter-utils/src/index.ts

API Discovery

Inspect node_modules/@tanstack/match-sorter-utils/dist/index.d.ts for the installed RankItemOptions, accessor attributes, ranking constants, and comparator behavior. For TanStack Table metadata integration, load @tanstack/table-core#table-features and read its global-filtering and sorting references.

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

core

무료

Build table data processing with TanStack Table v9 while keeping data and column definitions stable. The skill guides type inference, which determines types automatically, row identity, optional features, and checks for missing APIs.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Set up the foundation for table data processing
  • Troubleshoot column type inference
  • Investigate missing APIs or optional features
TanStack/table2.9만2026년 10월 13일 업데이트

Build a Table v9 plugin when built-in settings and typed metadata are insufficient. Guides custom state, options, and methods, with initialization hooks and runtime checks to ensure declared APIs actually exist and reset correctly.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Add reusable custom table behavior
  • Design plugin state and reset behavior
  • Keep declared APIs consistent with runtime behavior
TanStack/table2.9만2026년 10월 13일 업데이트

devtools

무료

Connect Solid Table v9 tables to Devtools and troubleshoot missing inspection targets. This skill guides table registration, unique keys, conditional activation, automatic cleanup, and the distinction between development exports and explicit production imports.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Connect a Solid Table instance to Devtools
  • Investigate tables missing from Devtools
  • Check registration keys and lifecycle cleanup
TanStack/table2.9만2026년 10월 13일 업데이트

devtools

무료

Connect Preact Table v9 to Devtools, a development inspection interface. This skill guides package selection, unique table keys, registration settings, and development-only behavior to help diagnose tables that do not appear.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Connecting Preact tables to Devtools
  • Diagnosing missing table targets
  • Checking duplicate keys across tables
TanStack/table2.9만2026년 10월 13일 업데이트

devtools

무료

Connect React Table v9 to Devtools, a development inspection interface. Configure table registration, unique keys, and enabled settings, and diagnose missing panels while understanding registration cleanup and the separate entrypoint for explicit production use.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Adding Devtools to React tables
  • Diagnosing missing Table panels
  • Controlling registration with enabled
TanStack/table2.9만2026년 10월 13일 업데이트

devtools

무료

Connect Vue Table v9 to Devtools and troubleshoot missing tables. Covers unique table keys, reactive references that track table replacement, cleanup when targets change, and the development settings that determine whether the integration runs.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Connect a Vue table to Devtools
  • Investigate a missing table target
  • Keep registration updated when a table reference changes
TanStack/table2.9만2026년 10월 13일 업데이트

TanStack의 스킬 모두 보기

이 스킬의 문제 신고