مكتبة صغيرة وخفيفة الوزن للبحث الغامض.
لقد أنشأت هذه المكتبة نتيجة للتعرف على خوارزمية Levenshtein Distance لحساب الحد الأدنى لعدد تعديلات الحرف الواحد (الإدراج أو الحذف أو الاستبدالات) المطلوبة لتحويل كلمة إلى أخرى بواسطة فلاديمير ليفنشتاين.
ملحوظة
ملاحظة: المكتبة في مرحلة مبكرة جدًا، لذا إذا كنت تريد المساعدة في تحسينها، فيرجى فتح مشكلة.
يمكنك التحقق من العرض التوضيحي هنا.
مع yarn
yarn add fuzzify
مع npm
npm install fuzzify
import Fuzzy from "fuzzify" ;
const countries = [
"Australia" ,
"France" ,
"Germany" ,
"Hungary" ,
"Iceland" ,
"India" ,
"Israel" ,
"Italy" ,
"Japan" ,
"Malawi" ,
"Malaysia" ,
"Maldives" ,
] ;
const fuzzy = new Fuzzy ( countries ) ;
const query = "ala" ;
const results = fuzzy . search ( query ) ;
console . log ( "RESULTS" , results ) ;
توفر واجهة برمجة تطبيقات search
سلاسل متطابقة تقريبية مع الاستعلام الذي تم تمريره بالتنسيق أدناه.
صفات | وصف |
---|---|
نص | السلسلة الهدف التي تتم مطابقة الاستعلام معها |
مسافة | الحد الأدنى لعدد التعديلات (الإدراج / الحذف / الاستبدالات) المطلوبة لتحويل الاستعلام إلى نص مستهدف. |
[
{
text : "Malawi" ,
distance : 3 ,
} ,
{
text : "Malaysia" ,
distance : 5 ,
} ,
{
text : "Australia" ,
distance : 6 ,
} ,
{
text : "Italy" ,
distance : 3 ,
} ,
{
text : "Japan" ,
distance : 3 ,
} ,
{
text : "Iceland" ,
distance : 5 ,
} ,
{
text : "Maldives" ,
distance : 6 ,
} ,
{
text : "Israel" ,
distance : 5 ,
} ,
{
text : "India" ,
distance : 4 ,
} ,
{
text : "France" ,
distance : 5 ,
} ,
{
text : "Germany" ,
distance : 6 ,
} ,
{
text : "Hungary" ,
distance : 6 ,
} ,
] ;
includeMatches
includeMatches
- يحدد ما إذا كان يجب إرجاع indices
التي تتطابق عندها الأحرف في الاستجابة. يتكون كل عنصر match
من مؤشرين -
مثال ؟
query = "ala" , target string = "Australia"
matches : [
[ 0 , 5 ] ,
[ 1 , 6 ] ,
[ 2 , 8 ] ,
] ,
في المثال أعلاه؟ تم العثور على مباريات
a
عند الفهرس 0th
في ala
مع الحرف a
عند الفهرس 5th
في Australia
l
في الفهرس 1st
في ala
مع الحرف a
في الفهرس 6th
في Australia
a
في الفهرس 2nd
في ala
مع الحرف a
في الفهرس 8th
في Australia
الرد الكامل سيكون ؟
[
{
text : "Malawi" ,
distance : 3 ,
matches : [
[ 0 , 1 ] ,
[ 1 , 2 ] ,
[ 2 , 3 ] ,
] ,
} ,
{
text : "Malaysia" ,
distance : 5 ,
matches : [
[ 0 , 1 ] ,
[ 1 , 2 ] ,
[ 2 , 7 ] ,
] ,
} ,
{
text : "Australia" ,
distance : 6 ,
matches : [
[ 0 , 5 ] ,
[ 1 , 6 ] ,
[ 2 , 8 ] ,
] ,
} ,
{
text : "Italy" ,
distance : 3 ,
matches : [
[ 0 , 2 ] ,
[ 1 , 3 ] ,
] ,
} ,
{
text : "Japan" ,
distance : 3 ,
matches : [
[ 0 , 1 ] ,
[ 2 , 3 ] ,
] ,
} ,
{
text : "Iceland" ,
distance : 5 ,
matches : [
[ 1 , 3 ] ,
[ 2 , 4 ] ,
] ,
} ,
{
text : "Maldives" ,
distance : 6 ,
matches : [
[ 0 , 1 ] ,
[ 1 , 2 ] ,
] ,
} ,
{
text : "Israel" ,
distance : 5 ,
matches : [
[ 0 , 3 ] ,
[ 1 , 5 ] ,
] ,
} ,
{
text : "India" ,
distance : 4 ,
matches : [ [ 2 , 4 ] ] ,
} ,
{
text : "France" ,
distance : 5 ,
matches : [ [ 2 , 2 ] ] ,
} ,
{
text : "Germany" ,
distance : 6 ,
matches : [ [ 2 , 4 ] ] ,
} ,
{
text : "Hungary" ,
distance : 6 ,
matches : [ [ 2 , 4 ] ] ,
} ,
] ;
includeScore
يحدد ما إذا كان ينبغي إضافة النتيجة في النتيجة. النتيجة 1
تعني تطابق تام، ولكن النتيجة 0
تعني عدم وجود تطابق وتتم إزالة هذه الخيارات من النتيجة. إذا كنت ترغب في الحصول على جميع الخيارات في النتيجة، يرجى فتح موضوع ودعنا نتناقش.
caseSensitive
يحدد ما إذا كان الاستعلام يجب أن يكون حساسًا لحالة الأحرف أم لا. بشكل افتراضي، هذا الخيار false
.
تثبيت الحزم:
yarn
بدء ملعب التطوير:
yarn start
أمر البناء:
yarn build
الرجاء فتح موضوع لنبدأ بالمناقشة. نرحب بأي مساعدة لتحسين المكتبة :).