パッケージ、リポジトリ、アプリカテゴリを検索

パッケージ詳細v2.0.3

woozy_search

Levenshtein距離に基づく、非常にシンプルで軽量なクライアント側のファジー検索ライブラリです。

AndroidiOSWebmacOSWindowsLinux
30日間ダウンロード
1400
いいね数
24
Pub ポイント
150

パッケージをインストール

flutter pub add woozy_search

パッケージ概要

公開情報に基づく選定ガイドです。参考としてご利用ください。

Woozy Search は、Levenshtein距離を使用してわずかな変化がある文字列を照合する、Flutterアプリ向けの軽量なクライアントサイドのファジー検索ライブラリです。ユーザーがタイプミスをしたり部分的な入力をした場合でも、高速かつ正確な検索結果を提供します。シンプルさを重視しており、最小限のセットアップで済み、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 件

ソースリポジトリ

このパッケージを使用しているプロジェクト

データはまだありません。