محرك بحث نصي يدعم البحث الغامض المختلط باللغة الصينية والإنجليزية
التمهيدي
محرك بحث نصي ديناميكي يعتمد على البرمجة ويدعم البحث الغامض المختلط باللغة الصينية والإنجليزية، ويعرض نتائج المطابقة ذات الوزن الأعلى.
تحقق من هذا العرض التوضيحي عبر الإنترنت إذا كنت مهتمًا.
npm i text-search-engine
يدعم كلاً من بيئات Node.js
Web
.
import { search } from 'text-search-engine'
const source = 'nonode'
search ( source , 'no' ) //[[0, 1]]
// Matches 'no', continuous characters have higher weight
search ( source , 'nod' ) // [[2, 4]]
search ( source , 'noe' ) // [[0, 1], [5, 5]]
search ( source , 'oo' ) // [[1, 1],[3, 3]]
search('nonode', 'noe')
نتيجة المطابقة: لا إيماءة ه
import { search } from 'text-search-engine'
const source = '地表最强前端监控平台'
search ( source , 'jk' ) // [[6, 7]]
search ( source , 'qianduapt' ) // [[4, 5],[8, 9]]
search('地表最强前端监控平台', 'qianduapt')
نتيجة المطابقة: 地表最强端监控平台
import { search } from 'text-search-engine'
search ( 'Node.js 最强监控平台 V9' , 'nodejk' ) //[[0, 3],[10, 11]]
const source_2 = 'a_nd你你的就是我的'
search ( source_2 , 'nd' ) //[[2, 3]]
// Matches '你你的'
search ( source_2 , 'nnd' ) //[[4, 6]]
// Matches 'a_'n'd你你的就'是我的'
search ( source_2 , 'nshwode' ) //[[2, 2],[8, 10]]
search('Node.js 最强监控平台 V9', 'nodejk')
نتيجة المطابقة: العقدة .js 最强监控平台 V9
إضافة مسافات يجعل كل مصطلح مستقلاً. يبدأ كل مصطلح في المطابقة من البداية، وستتم إزالة المصطلحات المتطابقة، وبالتالي يبدأ المصطلح التالي في المطابقة من البداية ويتجاهل المصطلحات المتطابقة مسبقًا.
const source_1 = 'Node.js 最强监控平台 V9'
search ( source_1 , 'jknode' ) // undefined
search ( source_1 , 'jk node' ) // [[10, 11],[0, 3]]
search('Node.js 最强监控平台 V9', 'jk node')
نتيجة المطابقة: العقدة .js 最强监控平台 V9
const source_1 = 'zxhxo zhx'
search ( source_1 , 'zh' ) //[[6, 7]])
// Even though the weight of 'zh' is higher, but the next term 'o' is not matched, so hit the previous one
search ( source_1 , 'zho' ) //[[0, 0],[2, 2],[4, 4]])
يتم استخدام واجهة برمجة التطبيقات هذه للتحقق بسرعة من صحة تمييزات مطابقة النص. تقوم بإرجاع رموز هروب ANSI التي يمكن إخراجها باستخدام console.log في كل من بيئات الويب وNode.js لرؤية النص المميز.
import { highlightMatches } from 'text-search-engine'
console . log ( highlightMatches ( 'Node.js 最强监控平台 V9' , 'nodev9' ) )
ستخرج وحدة التحكم: العقدة .js 最强监控平台V9
الافتراضي: false
const source = 'chrome 应用商店'
search ( source , 'meyinyon' ) //[[4, 5], [7, 8]])
// would merge blank spaces between each index of the matched term
search ( source , 'meyinyon' , { mergeSpaces : true } ) //[[4, 8]])
الافتراضي: undefined
const source = 'Node.js 最强监控平台 V8'
search ( source , 'nozjk' ) //[[0, 1], [8, 8], [10, 11]]
// When the strictnessCoefficient is 0.5 and nozjk is five characters long, Math.ceil(5 * 0.5) equals 3. If the match is less than or equal to 3 characters, it will return normally.
search ( source , 'nozjk' , { strictnessCoefficient : 0.5 } ) //[[0, 1], [8, 8], [10, 11]]
search ( source , 'nozjk' , { strictnessCoefficient : 0.4 } ) //undefined
ألق نظرة على العرض التوضيحي لـ CodeSandbox عبر الإنترنت
import { HighlightWithTarget } from 'text-search-engine/react'
function Test ( ) {
return < HighlightWithTarget source = 'Node.js 最强监控平台 V9' target = 'nodejk' / >
}
import { HighlightWithRanges } from 'text-search-engine/react'
import { search } from 'text-search-engine'
export default function DemoForHighlightWithTarget ( ) {
const ranges = search ( 'Node.js 最强监控平台 V9' , 'nodejk' )
return < HighlightWithRanges source = 'Node.js 最强监控平台 V9' hitRanges = { ranges } / >
}
تعقيد الوقت | تعقيد الفضاء | |
---|---|---|
أفضل | يا (م (المصدر)) | يا (م (المصدر)) |
أسوأ | O(M(المصدر) * N(الهدف)) | O(M(المصدر) * N(الهدف)) |
يرجى الاطلاع على المبادئ التوجيهية المساهمة لمعرفة المزيد.
شكرًا جزيلاً لجميع المساهمين الرائعين لدينا ❤️
لا تتردد في الانضمام إلى المرح وإرسال العلاقات العامة!
مرحبًا بك في إثارة المشكلة، يمكنك الاتصال بي على wx أو البريد الإلكتروني إذا كان لديك بعض الاقتراحات الجيدة (ملاحظات: محرك البحث النصي)