패키지, 저장소 및 앱 카테고리 검색

패키지 상세v2.0.3

woozy_search

레벤슈타인 거리 기반의 매우 간단하고 가벼운 클라이언트 측 퍼지 검색 라이브러리입니다.

AndroidiOSWebmacOSWindowsLinux
30일 다운로드
1.4천
좋아요
24
Pub 점수
150

패키지 설치

flutter pub add woozy_search

패키지 개요

공개 정보를 바탕으로 생성한 선택 가이드입니다.

Woozy Search는 Levenshtein 거리 알고리즘을 사용하여 약간의 차이가 있는 문자열을 매칭하는 경량 클라이언트 측 퍼지 검색 라이브러리입니다. 사용자가 오타를 내거나 부분 입력을 해도 빠르고 정확한 검색 결과를 제공합니다. 간단한 설계로 최소한의 설정만으로도 Android, iOS, Web, macOS, Windows, Linux 등 모든 주요 플랫폼에서 작동합니다. 유연한 매칭 기능을 통해 검색 바와 리스트 필터링의 사용자 경험을 향상시키기에 이상적입니다.

사용 사례

  • 목록 보기에서 실시간 검색
  • 오타를 수용하는 텍스트 매칭
  • 자동 완성 제안
  • 로컬에서 대규모 데이터셋 필터링
  • 간단한 UI 검색 구성 요소
  • 검색 인터페이스의 접근성 향상

주요 기능

  • 레벤슈타인 거리 기반
  • 최소 설정 및 구성
  • 크로스 플랫폼 호환성
  • 가볍고 빠름
  • 클라이언트 측 전용
  • 외부 종속성 없음

적합한 대상

  • 간단한 패치 검색을 찾는 개발자
  • 백엔드 없이 로컬 검색이 필요한 앱
  • 성능과 크기 우선 순위를 고려하는 프로젝트
  • 타이포 내성 요구 UI 컴포넌트
  • 검색 기능이 있는 프로토타입 및 MVP

고려 사항

  • 대규모 서버 측 검색에 적합하지 않습니다
  • 클라이언트 측 사용에 제한됨
  • 고급 순위 또는 점수 기능을 지원하지 않습니다
  • 작은부터 중간 규모의 데이터 세트에 가장 적합
  • 내장 캐시 또는 비동기 처리 없음

원본 README

연결된 소스 저장소의 README 원문 스냅샷입니다. 최신 내용은 저장소에서 확인하세요.

Woozy Search

A super simple and lightweight client-side fuzzy-search library based on Levenshtein distance.

Usage

dependencies:
  woozy_search: '>=2.0.2 <3.0.0'

Basic Usage

import 'package:woozy_search/woozy_search.dart';

main() {
  final woozy = Woozy();
  woozy.addEntries(['basketball', 'badminton', 'skating']);
  final output = woozy.search('badmi');
  output.forEach((element) => print(' - ${element}'));
}

Output:

 - text: badminton, score: 0.56
 - text: basketball, score: 0.20
 - text: skating, score: 0.14

With Associate Values

Associate value can be anything, integers, UUIDs, text, etc. As an example, we use a name and their phone number here.

import 'package:woozy_search/woozy_search.dart';

main() {
  final woozy = new Woozy();
  woozy.addEntry('John Doe', value: "+1 210-269-0117");
  woozy.addEntry('Nate Humphrey', value: "+1 (416) 527-4927");
  woozy.addEntry('Serena Waldorf', value: "+ 1 914-514-7901");
  final output = woozy.search('humphray');
  output.forEach((element) => print(' - ${element}'));
}

Output:

 - text: Nate Humphrey, score: 0.88, value: +1 (416) 527-4927
 - text: Serena Waldorf, score: 0.13, value: + 1 914-514-7901
 - text: John Doe, score: 0.13, value: +1 210-269-0117

With Search Output Limit

Limit the number of search result to return. It is defaulted to 10, but can be overwritten.

import 'package:woozy_search/woozy_search.dart';
  
main() {
  final woozy = Woozy(limit: 2);
  woozy.setEntries(List.filled(100, 'foo'));
  final output = woozy.search('f');
  output.forEach((element) => print(' - ${element}'));
}

Output:

 - text: foo, score: 0.33
 - text: foo, score: 0.33

With Case Sensitive

main() {
  final woozy = Woozy(caseSensitive: true);
  woozy.setEntries(['FOO', 'boo']);
  final output = woozy.search('foo');
  output.forEach((element) => print(' - ${element}'));
}

Output:

 - text: boo, score: 0.67
 - text: FOO, score: 0.00

Features and bugs

Please file feature requests and bugs at the issue tracker.

카테고리

의존성

의존성 목록 1 개

소스 저장소

이 패키지를 사용하는 프로젝트

아직 데이터가 없습니다.