Это менеджер документов All-SQL для Letarette. Чтобы подключить хранилище первичного документа на основе SQL к Letarette, необходимо подать только два запроса. Проверьте пример, чтобы увидеть, насколько основным они могут быть, учитывая, что основное хранилище имеет аналогичную структуру.
Поддерживаются следующие драйверы SQL:
Если вы просто хотите попробовать его, есть конфигурация docker-compose , которая запускает полную небольшую систему Letarette, поданную базой данных и запросами из примера проекта.
Просто запустите 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 имеет два отдельных шага, сначала он извлекает «список интересов» документов, которые новые, чем текущая позиция индекса (запрос индекса), а затем он извлекает документы в этом списке (запрос документа).
Неэпппараты времени UTC - ссылки на наносекунд Unix.
Текущая позиция индекса представляет собой комбинацию идентификатора документа и обновленной метки времени этого документа. Чтобы справиться с ситуацией, когда документ по позиции индекса был обновлен с тех пор, как он был получен последним, запросы на запрос индекса должны следовать строгому заказу документа. Это лучше всего обрабатывается путем сортировки в основном по метке времени обновлений , а во второй половине идентификатора документа и обработке случая, когда метка времени обновления не изменилась отдельно. См. IndexRequest.sql из примера проекта.
Запрос запроса индекса получает три связанных параметров: afterDocument (строка), fromTimeNanos (int64) и documentLimit (uint16) и должен возвращать ряды двух столбцов: id (String) и updatedNanos (int64). Параметры границ упоминаются путем префикса их толстой кишкой:
where :afterDocument > 2 Реализация запроса на документ еще проще, поскольку это необходимо только для извлечения всех документов для списка идентификаторов документа: documentRequest.sql. Одиночный параметр wantedIDs будет заменен списком идентификаторов документов (строка).
Запрос запроса документа должен возвращать строки id (String), updatedNanos (int64), title (String), txt (String) и 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 . |