Mesin pencari teks yang mendukung pencarian fuzzy campuran Cina dan Inggris
atau README
Mesin pencari teks berbasis pemrograman dinamis yang mendukung pencarian fuzzy campuran bahasa Mandarin dan Inggris, memberikan hasil pencocokan dengan bobot tertinggi.
Lihat demo online ini jika Anda tertarik.
npm i text-search-engine
Mendukung lingkungan Node.js
dan 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')
Hasil kecocokan: TIDAK mengangguk e
import { search } from 'text-search-engine'
const source = '地表最强前端监控平台'
search ( source , 'jk' ) // [[6, 7]]
search ( source , 'qianduapt' ) // [[4, 5],[8, 9]]
search('地表最强前端监控平台', 'qianduapt')
Hasil pertandingan: 地表最强前端监控平台
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')
Hasil pertandingan: simpul .js 最强监控平台 V9
Menambahkan spasi membuat setiap istilah menjadi independen. Setiap istilah mulai cocok dari awal, dan istilah yang cocok akan dihapus, sehingga istilah berikutnya mulai cocok dari awal dan mengabaikan istilah yang cocok sebelumnya.
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')
Hasil pertandingan: simpul .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]])
API ini digunakan untuk memvalidasi sorotan pencocokan teks dengan cepat. Ia mengembalikan kode escape ANSI yang dapat dikeluarkan menggunakan console.log di lingkungan Web dan Node.js untuk melihat teks yang disorot.
import { highlightMatches } from 'text-search-engine'
console . log ( highlightMatches ( 'Node.js 最强监控平台 V9' , 'nodev9' ) )
Konsol akan menampilkan: simpul .js 最强监控平台V9
Bawaan: 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]])
Bawaan: 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
Lihatlah Demo Online 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 } / >
}
Kompleksitas Waktu | Kompleksitas Ruang | |
---|---|---|
Terbaik | O(M(sumber)) | O(M(sumber)) |
Terburuk | O(M(sumber) * N(target)) | O(M(sumber) * N(target)) |
Silakan lihat pedoman berkontribusi untuk mempelajari lebih lanjut.
Terima kasih banyak kepada semua kontributor kami yang luar biasa ❤️
Jangan ragu untuk ikut bersenang-senang dan mengirimkan PR!
selamat datang untuk menyampaikan masalah, Anda dapat menghubungi saya di wx atau email jika Anda memiliki saran bagus (catatan: mesin pencari teks)