Başlangıç
Satın almadan yayına: bir zip, üç komut ve bir script etiketi. Çalıştıracak sunucu, yönetecek API anahtarı ve sorgu başına ödenecek ücret yok — arama ziyaretçinin kendi cihazında çalışıyor.
1. Satın alma ve zip
Lisans satın aldığınızda ödeme sayfasından teşekkür sayfasına yönlendirilirsiniz. O sayfa lisans anahtarınızı gösterir ve indirme bağlantısını verir. Anahtar şu biçimdedir:
LE-XXXX-XXXX-XXXX-XXXX
Anahtarı saklayın. Sistemde hesap ya da parola yok; kimliğiniz bu anahtar. Güncellemeleri indirmek için de aynı anahtarı kullanacaksınız. Kaybederseniz e-posta atın, siparişinizden bulup geri veririz.
İndirdiğiniz zip şunları içerir:
lightembed-1.0.0.zip
├── model-tr-1.0.0.bin size özel parmak izli model
├── lightembed-cli-1.0.0.tgz komut satırı aracı
├── lightembed-client-1.0.0.tgz tarayıcı istemcisi ve arama kutusu
├── LICENCE.txt lisans metni ve anahtarınız
└── docs/ bu sayfanın çevrimdışı kopyası
2. Kurulum
Paketler npm kayıt defterinde yayınlanmıyor; zip'in içinden kuruluyor:
unzip lightembed-1.0.0.zip -d lightembed
cd lightembed
npm install ./lightembed-cli-1.0.0.tgz ./lightembed-client-1.0.0.tgz
Bu kurulum ağa çıkmaz — paketlerin hiçbir bağımlılığı yok, arama motoru (WebAssembly) da CLI paketinin içinde geliyor. Doğrulamak için:
npx lightembed inspect ./model-tr-1.0.0.bin
3. İçeriğinizi indeksleyin
Elinizde bir içerik dizini varsa:
npx lightembed index ./icerik \
--model ./model-tr-1.0.0.bin \
--out ./public/lightembed \
--base-url https://siteniz.com
Elinizde yalnızca yayındaki site varsa, önce onu indirin:
npx lightembed crawl https://siteniz.com/dokumanlar/ --out ./icerik
crawl, sitenin URL yapısını diske olduğu gibi yansıtır; böylece
sonuç bağlantıları gerçek sayfalara gider. robots.txt'e uyar,
istekleri sırayla ve aralıklı gönderir, ve hiçbir sayfa indiremezse sessizce boş
bir dizin bırakmak yerine hata verir.
--content-selector.
HTML indekslerken sayfanın hangi bölümünün içerik sayılacağını bu seçer
(main, .article, #icerik gibi). Yanlış
yazarsanız indeks makale yerine menü ve altbilgi metnini tutar — arama
"çalışmaz" değil, "saçmalar". Bu yüzden hiçbir dosyada eşleşmeyen bir selector
hata verir.4. Sayfanıza aramayı ekleyin
Hazır bileşen — bir script etiketi ve bir eleman:
<script type="module" src="/lightembed/widget.mjs"></script>
<lightembed-search src="/lightembed" hotkey="cmd+k" placeholder="Belgelerde ara…">
</lightembed-search>
Ya da kendiniz sürün:
import { createSearch } from 'lightembed-client';
const search = await createSearch('/lightembed');
// Odaklanınca ısıt: indirme kullanıcı yazarken gerçekleşir, böylece ilk arama
// onuncu arama gibi hissettirir.
input.addEventListener('focus', () => search.warm());
const hits = await search.query('vergi iadesi nasıl alınır', { topK: 5 });
public/lightembed/ dizinini herhangi bir statik sunucuya
kopyalayabilirsiniz. Sunucu gerektiren hiçbir şey yok.
Ne, ne zaman iniyor
| An | Bayt (gzip) |
|---|---|
| Sayfa açılışı | 8,2 KB — manifest, widget ve istemci |
| Ziyaretçi arama kutusuna odaklanınca | motor 48 KB + model 2,58 MB + indeks |
| Sonraki her arama | 0 |
Hiç aramayan bir ziyaretçi 8,2 KB öder. Arayan bir kez öder, o da yazarken.
5. Güncelleme
İçerik değiştikçe lightembed index komutunu tekrar çalıştırın.
Yeni bir model sürümü çıktığında:
npx lightembed update --key LE-XXXX-XXXX-XXXX-XXXX
npm install ./lightembed-update/lightembed-cli-<yeni>.tgz
Komut, lisansınızın kapsadığı en yeni sürümü indirip
./lightembed-update/ içine açar. Model dosyasını yenisiyle
değiştirin. İlk 12 ay bütün güncellemeler dahildir; sonrası isteğe bağlı
$10/yıl, ve yenilemeseniz de elinizdeki sürüm süresiz çalışmaya devam eder.
Model değişince indeksi yeniden kurmak gerekir mi:
| Model değişimi | İndeks |
|---|---|
| 1.2.0 → 1.2.1 | geçerli kalır |
| 1.2.0 → 1.3.0 | geçerli kalır |
| 1.2.0 → 2.0.0 | yeniden kurulmalı |
Major sürüm gömme uzayını taşır. Yeni uzayda gömülmüş bir sorguyu eski uzayda gömülmüş belgelerle karşılaştırmak, başka hiçbir belirtisi olmayan, kendinden emin ve yanlış sonuçlar üretir — bu yüzden istemci sessizce bozulmak yerine aramayı reddedip yeniden indekslemenizi söyler.
Sorun giderme
"index was built with model X but Y is loaded" — indeksin
yanındaki model dosyası onu kuran model değil. lightembed index'i
tekrar çalıştırın ya da doğru modeli geri koyun.
Sonuçlar ilgili ama aradığım tam terim yok. Terim bir kod
bloğunun içindeyse --include-code'a bakın. Değilse aramanın anahtar
kelime yarısı onu yakalamalıydı; --lexical-weight değerini
yükseltmeyi deneyin (parça numarası ve hata kodu arayan siteler için
1–2, soru soranlar için 0–0,5).
İlk aramada yavaş. warm()'ı daha erken çağırın —
odaklanmada ya da arama düğmesinin üzerine gelindiğinde.
Çözülmeyen her şey için: mertcobanov@gmail.com. 14 gün içindeyseniz iade de sorgusuz.