هذا هو مدير مستندات SQL All-SQL لـ Letarette. لتوصيل تخزين المستند الأساسي المستند إلى SQL إلى Letarette ، يجب توفير استفسارين فقط. تحقق من المثال لمعرفة مدى أساسيتها ، بالنظر إلى أن التخزين الأساسي له بنية مماثلة.
يتم دعم برامج تشغيل SQL التالية:
إذا كنت ترغب فقط في تجربتها ، فهناك تكوين docker-compose يقوم بتشغيل نظام Littarette الكامل الكامل ، يتم تغذيته بواسطة قاعدة البيانات والاستعلامات من مشروع المثال.
ما عليك سوى تشغيل docker-compose up لبدء النظام.
عندما ينتهي النظام ، يمكنك تشغيل استعلامات (وأوامر أخرى) عن طريق تشغيل lrcli داخل حاوية "Letarette":
$ docker-compose exec letarette ./lrcli search -i docs
search > carrots -celery
Query executed in 0.000564746 seconds with status " found in index "
Returning 2 of 2 total hits, capped: false
[135] …and a carrot ; boil until soft. When done, take out the…
[303] …pot, 1 carrot, 1 onion, thyme, bay leaf, salt and pepper, 2 cloves… تحتاج خدمة Letarette.sql ، lrsql ، إلى معرفة كيفية الاتصال بقاعدة بيانات SQL ، ومكان العثور على الاستعلامات التي توفر المستندات لمؤشر Letarette .
لجعل الخدمة تتصل بمصدر postgresql ، واستخدم القيم الافتراضية لمواقع ملفات الاستعلام ( indexrequest.sql و documentrequest.sql ):
$ export LRSQL_DB_DRIVER= " postgres "
$ export LRSQL_DB_CONNECTION= " postgres://user:password@localhost/testdb?sslmode=verify-full "
$ ./lrsql سيقوم تشغيل lrsql مع أي وسيطة لخط الأوامر بطباعة الإعدادات المتاحة وقيمها الافتراضية.
تحتوي دورة تحديث Letarette Indexer على خطوتين منفصلتين ، أولاً تجلب "قائمة فائدة" من المستندات الأحدث من موضع الفهرس الحالي (طلب الفهرس) ، ثم يجلب المستندات في تلك القائمة (طلب المستند).
الطوابع الزمنية هي UTC - المشار إليها UNIX EPOCH Nanoseconds.
موضع الفهرس الحالي هو مزيج من معرف المستند وجداول الزمن المحدثة لهذا المستند. للتعامل مع الموقف الذي تم فيه تحديث وثيقة موضع الفهرس لأنه تم جلبه آخر مرة ، تحتاج استعلامات طلب الفهرس إلى اتباع طلب صارم للوثيقة. من الأفضل التعامل مع هذا عن طريق الفرز بشكل أساسي على تحديث الطابع الزمني وثانيًا على معرف المستند والتعامل مع الحالة التي يتم فيها تغيير الطابع الزمني للتحديث بشكل منفصل. انظر indexRequest.sql من مشروع المثال.
يحصل استعلام طلب الفهرس على ثلاث معلمات ملزمة: afterDocument (سلسلة) ، fromTimeNanos (int64) و documentLimit (UINT16) ويجب أن تعيد صفوف من عمودين: id (سلسلة) و updatedNanos (int64). يشار إلى معلمات الحدود من خلال بادئةها مع القولون:
where :afterDocument > 2 يعد تطبيق طلب المستند أسهل ، لأن هذا يحتاج فقط إلى استرداد جميع المستندات للحصول على قائمة معرفات المستند: DocumentRequest.sql. سيتم استبدال المعلمة المخصصة wantedIDs مع قائمة معرفات المستند (السلسلة).
يجب أن يقوم استعلام طلب المستند بإرجاع صفوف id (سلسلة) ، updatedNanos (int64) ، title (السلسلة) ، و txt (سلسلة) و alive (Bool).
يستخدم Letarette.SQL علامات الإنشاء للتحكم في السائقين المدمجة في الخدمة الثنائية. تتمتع علامات الإنشاء بنفس الأسماء التي تمكّنها برامج التشغيل.
القائمة الحالية لعلامات بناء السائق هي:
على سبيل المثال ، لبناء ثنائي مع دعم "Postgres" و "MySQL":
$ go build -tags " postgres,mysql "يتم تكوين خدمة Letarette.SQL بواسطة متغيرات البيئة.
| عامل | يكتب | وصف |
|---|---|---|
| lrsql_nats_url | خيط | عنوان URL لخدمة NATS للاتصال به ، والتخلف عن nats://localhost:4222 . |
| lrsql_nats_topic | خيط | بادئة موضوع NATS لجميع الرسائل ، والتخلف عن leta . |
| lrsql_index_space | خيط | مساحة الفهرس للخدمة ، الافتراضية docs . |
| lrsql_db_driver | خيط | اسم برنامج تشغيل قاعدة البيانات |
| lrsql_db_connection | خيط | سلسلة اتصال قاعدة البيانات |
| LRSQL_SQL_INDEXSQLFILE | خيط | ملف مصدر SQL لمعالجة طلبات الفهرس. الافتراضي: indexrequest.sql . |
| lrsql_sql_documentsqlfile | خيط | SQL Source تم تقديمه للتعامل مع طلبات المستندات. الافتراضي: documentrequest.sql . |