TgWitness / دستاویزات

کیا جانچا گیا ہے ←

حوالہ / آرکائیو اور انضمامات

Telegram · مکمل متن تلاش

محفوظ شدہ پیغامات کو لفظی شکلوں، بالکل درست عبارتوں، ڈومینز اور @usernames کی بنیاد پر تلاش کریں، بہترین مماثلتیں پہلے، انڈیکس کو دستخط شدہ جرنل سے منسلک کریں۔

ٹی جی وٹنس / دستاویزات · تفتیش

تفتیش

آرکائیو تجزیہ · مقامی OCR اور ٹرانسکرپشن · ویکی

پریویو۔ جرنل میں، سرچ فیلڈ کے ساتھ 'بہترین میل · لفظ کی اقسام' (Best match · word forms) منتخب کریں۔ نتائج کو BM25 کے ساتھ درجہ بندی کیا جاتا ہے اور ایک ہی لفظ کی دیگر شکلوں سے بھی میل کھاتا ہے: перевод، переводом اور переводы تلاش کرتا ہے، transfer، transfers تلاش کرتا ہے، ایک چینی عبارت بغیر خالی جگہوں کے تلاش کی جاتی ہے۔ 'نئے پہلے · بالکل ٹیکسٹ' (Newest first · exact text) پوری ریکارڈ پر پچھلی سب سٹرنگ تلاش کو برقرار رکھتا ہے۔

انڈیکس مشتق ڈیٹا ہے۔ یہ دستخط شدہ جرنل سے دوبارہ تیار کیا جاتا ہے، خود کبھی دستخط نہیں کیا جاتا اور کبھی برآمد نہیں ہوتا۔ اصل ریکارڈز میں کوئی تبدیلی نہیں ہوتی۔

اس صفحے پر

سرچ سنٹیکس#

لکھیں پاتا ہے
перевод карта وہ ریکارڈز جن میں دونوں الفاظ کسی بھی شکل میں شامل ہوں
"переводом на карту" بالکل اسی جملے کو اسی ترتیب میں
бонус OR подарок یا لفظ
перевод -казино استثنا شدہ لفظ کے بغیر ریکارڈز
example.com ڈومین اور اس کے سب ڈومینز، نیز پوشیدہ لنکس اور بٹن یو آر ایل میں بھی
@username, t.me/username اکاؤنٹ کے ذکر اور روابط، اور اس کے بھیجے گئے پیغامات
#tag ہیش ٹیگ
+79991234567، ایک والیٹ ایڈریس، ایک ای میل ایڈریس متن یا لنکس میں وہی قدر
from:@username, from:123456 اس بھیجنے والے کے پیغامات
chat:-1001234567890 ایک چیٹ؛ یہ صرف آپ کی اپنی رسائی کو محدود کر سکتا ہے
id:42 پیغام 42 کے محفوظ شدہ ورژنز
since:2026-01-01 until:2026-01-31 مشاہداتی مدت؛ بغیر وقت کے تاریخ پورے دن پر محیط ہوتی ہے۔
kind:edited صرف ترامیم (new, snapshot, edited, recovered)
source:ocr, source:transcription, source:all پیغامات کے بجائے یا ان کے ساتھ پہچانا گیا متن

جب دوسرے الفاظ موجود ہوں تو حرفِ جر اور دیگر فعلِ الفاظ کو نظر انداز کیا جاتا ہے۔ لفظ میں شامل مماثل حروف (مثلاً سائرلک لفظ کے اندر لاطینی حرف 'a')، مکمل چوڑائی والے اور سجاوٹی یونیکوڈ حروف اور پوشیدہ علامات کو معیاری شکل میں لایا جاتا ہے۔

زبانیں#

ہر ریکارڈ کی زبان اس کے رسم الخط اور حروف کی بنیاد پر شناخت کی جاتی ہے:

اسکرپٹ مطابقت
سیریلیک pymorphy3 کے ساتھ روسی اور یوکرینی لیمّا۔ اختیاری یوکرینی لغت کے بغیر ایک ہلکا یوکرینی سٹیمر استعمال کیا جاتا ہے۔
لاطینی انگریزی سنو بال اسٹیمر؛ diakritics کو نظر انداز کیا جاتا ہے
چینی، جاپانی، کوریائی، تھائی، لاو، خمیر، میانمار اوورلیپنگ کردار جوڑے: کوئی بھی عبارت بغیر خالی جگہ کے مل جاتی ہے۔ چینی سوالات jieba کے ذریعے الفاظ میں تقسیم کیے جاتے ہیں۔
دیگر اسکرپٹس بالکل الفاظ

یوکرینی لغت (pymorphy3-dicts-uk) GPL-3.0 کے تحت تقسیم کیا گیا ہے، لہٰذا یہ ڈیفالٹ طور پر انسٹال نہیں ہوتا۔ اسے کے ساتھ انسٹال کریں pip install "tgwitness[uk-dictionary]"؛ انڈیکس نئے اینالیزر کو نوٹس کرتا ہے اور خود کو دوبارہ تعمیر کرتا ہے۔

جہاں انڈیکس موجود ہے#

موڈ ذخیرہ استعمال کریں
ڈسک پر (ڈیفالٹ) search/fulltext.sqlite3 ورک اسپیس ڈائریکٹری میں بڑے آرکائیوز؛ دوبارہ شروع کرنے پر بھی برقرار رہتا ہے
صرف میموری میں ڈسک پر کچھ بھی نہیں؛ ہر آغاز پر دوبارہ تعمیر ہوتا ہے ڈسک پر پیغام کے متن کی کوئی مشتق کاپی نہیں
بند کوئی انڈیکس نہیں؛ تازہ ترین پہلے · اصل متن برقرار نہایت کم تنصیبات

اہم منتظم ہر ورک اسپیس کے لیے Journal → Filters → Search index کے تحت موڈ کا انتخاب کرتا ہے۔ TGWITNESS_FULLTEXT=disk|memory|off ان ورک اسپیسز کے لیے ڈیفالٹ مقرر کرتا ہے جن کی اپنی کوئی پسند نہیں ہوتی۔ میموری یا آف پر سوئچ کرنے سے فائل حذف ہو جاتی ہے۔ انڈیکس فائل کو جرنل جیسی ہی حفاظت حاصل ہے: یہ پرائیویٹ ڈیٹا ڈائریکٹری میں موجود ہوتی ہے۔ یہ انکرپٹڈ نہیں ہوتی، اور بیک اپ یا آف سائٹ کاپیوں کا حصہ نہیں ہوتی۔

نئے ریکارڈز چند سیکنڈز میں پسِ منظر میں انڈیکس ہو جاتے ہیں؛ تلاش پہلے مختصر بیک لاگ کو انڈیکس کرتی ہے، تاکہ چند لمحے پہلے محفوظ کیا گیا ریکارڈ مل سکے۔ اپ ڈیٹ کے بعد موجودہ جرنل بلاک کیے بغیر انڈیکس ہوتا ہے؛ اس دوران نتائج انڈیکس شدہ ریکارڈز کو شامل کرتے ہیں اور جرنل پیش رفت دکھاتا ہے۔ انڈیکس دوبارہ تعمیر کرنا پہلے ریکارڈ سے دوبارہ شروع ہوتا ہے۔

python -m tgwitness index status --data-dir data/live
python -m tgwitness index rebuild --data-dir data/live --json

rebuild پینل کو روکنا ضروری ہے (ورنہ ایگزٹ کوڈ 3 ہوگا)۔ کے ساتھ --json, معیاری آؤٹ پٹ میں صرف نتیجہ شامل ہوتا ہے؛ پیش رفت معیاری ایرر پر جاتی ہے۔

نتائج اور دستخط شدہ جرنل#

انڈیکس اس آخری جرنل ریکارڈ کا ترتیب نمبر اور ہیش محفوظ کرتا ہے جسے یہ کور کرتا ہے اور جرنل کھلنے پر ان کا مقابلہ کرتا ہے۔ ایک تبدیل شدہ، بحال شدہ یا ترمیم شدہ جرنل دوبارہ تعمیر کا سبب بنتا ہے۔ ہر جواب اس پوزیشن کی اطلاع دیتا ہے، اور ہر ہٹ کو اس کے ترتیب نمبر کے ذریعے دستخط شدہ جرنل سے دوبارہ پڑھا جاتا ہے: انڈیکس فیصلہ کرتا ہے کہ کون سے ریکارڈز دکھانے ہیں اور کس ترتیب میں، نہ کہ ان کے مواد کے بارے میں۔ چیٹ کی رسائی جرنل کے اپنے چیٹ فیلڈ پر لاگو ہوتی ہے، نہ کہ انڈیکس کے مواد پر۔

متعارف شدہ متن#

OCR اور ٹرانسکرپٹس اپنے انکرپٹڈ آرٹیفیکٹس میں ہی رہتے ہیں۔ ان کا انڈیکس صرف میموری میں موجود ہوتا ہے اور جب کوئی شناخت کا کام مکمل ہوتا ہے تو دوبارہ بنایا جاتا ہے۔ ایک ہٹ اس کے media.saved ریکارڈ پر ظاہر ہوتا ہے، جس پر مشین کی شناخت کے طور پر انجن، ماڈل اور ایک اقتباس کا لیبل ہوتا ہے؛ اسے کبھی بھی ٹیلیگرام میں بھیجا گیا متن کے طور پر پیش نہیں کیا جاتا۔ یہی انڈیکس Search recognized text کے لیے کام کرتا ہے، جو اب بھی سادہ ذیلی سٹرنگز سے بھی میل کھاتا ہے۔

رسائی#

چٹ کی حد تک رسائی صرف اپنی چٹس کے ریکارڈز تلاش کرتی ہے، بشمول ان کے منسلکات کے پہچانے گئے متن کے۔ chat: اور دیگر فلٹرز صرف اس سیٹ کو محدود کر سکتے ہیں۔ انڈیکس کی حیثیت جو اسکوپڈ رسائی کو دکھائی جاتی ہے، جرنل کے کل اعداد و شمار کو خارج کر دیتی ہے۔ صرف مرکزی منتظم ہی موڈ تبدیل کر سکتا ہے یا انڈیکس کو دوبارہ تعمیر کر سکتا ہے۔

آرکائیو اور MCP سے پوچھیں#

جب یہ مکمل ہو جائے تو Ask the archive اس اشاریے سے اپنے ذرائع حاصل کرتا ہے: منتخب کردہ چیٹس میں سے بہترین مماثلتیں، جن میں محفوظ شدہ متن کو صرف ایک بار شمار کیا جاتا ہے۔ 24 تک ذرائع بھیجے جاتے ہیں؛ طویل متون کو ان کی مماثلت کے گرد کاٹا جاتا ہے اور انہیں نامکمل کے طور پر نشان زد کیا جاتا ہے۔ حالیہ تبدیلیوں کے بارے میں سوالات، ایک پیغام کے محفوظ شدہ ورژنز، اور اشاریے کی تیاری کے دوران کی جانے والی تلاشیں پچھلی زمانی ترتیب والی بازیافت استعمال کرتی ہیں۔ پیش نظارہ دکھاتا ہے کہ کون سا طریقہ استعمال کیا گیا تھا۔

MCP کلائنٹس کال کر سکتے ہیں search_messages کے ساتھ ranked=true اور صفحہ کے ساتھ next_offset. Scoped کنکشنز صرف اپنی چیٹس وصول کرتے ہیں۔

درجہ بند صفحہ بندی زیادہ سے زیادہ پہلے 1,000 نتائج کو کور کرتی ہے، قطع نظر صفحے کے سائز کے۔ مزید میچز دیکھنے کے لیے سوال، چیٹ یا مدت کو محدود کریں۔ نئے سے پہلے تلاش پیغامات، OCR اور ٹرانسکرپشن کے نتائج کو ہر صفحہ منتخب کرنے سے پہلے ترتیب دیتی ہے۔

انحصار#

پیکیج لائسنس کیوں
pymorphy3, pymorphy3-dicts-ru, DAWG2-Python ایم آئی ٹی روسی اور یوکرینی لیمّا؛ لغتوں کو مقامی طور پر لوڈ کیا گیا ہے
snowballstemmer BSD-3-شق انگریزی اسٹیمز، خالص پائتھن
جیبا ایم آئی ٹی چینی استفسار کی تقسیم، خالص پائتھن (صرف ماخذ تقسیم)
pymorphy3-dicts-uk (اختیاری) جی پی ایل-3.0 مکمل یوکرینی لغت

SQLite FTS5 کے ساتھ unicode61 ٹوکنائزر درکار ہے؛ یہ موجودہ پائتھن بلڈز میں شامل SQLite کا حصہ ہے۔ اس کے بغیر، بہترین مماثل تلاش رپورٹ کرتی ہے کہ یہ دستیاب نہیں ہے۔

بینچ مارک#

python tools/bench_fulltext.py --messages 1000000 --work <empty directory>یہ 200 چیٹس میں روابط اور ہینڈلز کے ساتھ مخلوط روسی، یوکرینی، انگریزی، چینی اور جاپانی پیغامات کا ایک متعین دستخط شدہ جریدہ بناتا ہے، انڈیکس تیار کرتا ہے اور عام تلاشوں (50 نتائج، 7 چلاؤ کا درمیانہ) کا وقت نکالتا ہے۔

Windows 11، Intel Core i9-13900K، 128 GB RAM، Python 3.12.10، SQLite 3.49.1، exFAT ڈرائیو پر ڈیٹا، تجزیہ کار پر ماپا گیا۔ fulltext-v1+pymorphy3-ru+light-uk+snowball-en:

ماپیں نتیجہ
مصنوعی دستخط شدہ جرنل 1,000,000 پیغامات، 1.50 GiB، 19 منٹ میں لکھا گیا
جرنل سے انڈیکس بلڈ 71 سیکنڈز، تقریباً 14,141 پیغامات فی سیکنڈ
انڈیکس فائل 58 MiB، جرنل کا 3.8%
نئے ریکارڈ کے فوراً بعد تلاش کریں 8 ms میڈیئن، 9 ms p95
پچھلی ذیلی سٹرنگ تلاش، اسی جرنل میں перевод 3.2 s، 银行转账 2.6 s، verify-account.example 2.6 s
تلاش مطابقت پذیر ریکارڈز بہترین ملاپ، وسطی p95 نیا ترین پہلے، درمیانی
عام لفظ، لفظ کی شکلیں: перевод 134,403 82 ملی سیکنڈ 85 ملی سیکنڈ 7 ملی سیکنڈ
دو الفاظ: оплата карта 28,996 43 ملی سیکنڈ 43 ملی سیکنڈ 14 ملی سیکنڈ
نایاب لفظ: розыгрыш подарок 28,881 42 ملی سیکنڈ 47 ملی سیکنڈ 13 ملی سیکنڈ
صحیح عبارت: "переказ коштів на картку" گننا نہیں گیا 35 ملی سیکنڈ 36 ملی سیکنڈ 6 ملی سیکنڈ
ڈومین اور ذیلی ڈومینز: verify-account.example 12,435 17 ملی سیکنڈ 17 ملی سیکنڈ 3 ملی سیکنڈ
@username: @support_desk_bot 10,331 15 ملی سیکنڈ 16 ms 3 ملی سیکنڈ
چینی بغیر خالی جگہوں کے: 银行转账 17,691 23 ملی سیکنڈ 24 ملی سیکنڈ 3 ملی سیکنڈ
جاپانی: リンク 16,603 23 ملی سیکنڈ 25 ملی سیکنڈ 3 ملی سیکنڈ
انگریزی بنیاد: withdrawal 27,775 26 ملی سیکنڈ 26 ملی سیکنڈ 2 ملی سیکنڈ
یا اور استثناء: бонус OR подарок -казино 268,034 190 ملی سیکنڈ 193 ملی سیکنڈ 19 ملی سیکنڈ
چٹ فلٹر: chat:-1000000000007 перевод 652 9 ملی سیکنڈ 9 ملی سیکنڈ 6 ملی سیکنڈ
دورانیہ فلٹر: since:2026-01-01 until:2026-01-31 выплата 115,732 155 ms 156 ملی سیکنڈ 81 ملی سیکنڈ

ایک مخصوص عبارت کو امیدواروں پر ترتیب وار درجہ بندی کے مطابق لفظی طور پر چیک کیا جاتا ہے جب تک صفحہ بھر نہ جائے، اس لیے اس کا مجموعی شمار نہیں کیا جاتا۔ میچ ہونے والی ریکارڈز کی تعداد کے ساتھ وقت بڑھتا جاتا ہے؛ چیٹ یا دورانیے کو محدود کرنے سے وسیع تلاشیں تیز ہو جاتی ہیں۔ مصنوعی مجموعہ ایک چھوٹے ذخیرہ الفاظ کو دہراتا ہے، اس لیے عام الفاظ حقیقی چیٹس کے مقابلے میں کہیں زیادہ ریکارڈز سے میل کھاتے ہیں۔