これは、LetaretteのAll-SQLドキュメントマネージャーです。 SQLベースのプライマリドキュメントストレージをLetaretteに接続するには、2つのクエリのみを提供する必要があります。プライマリストレージに似た構造があることを考えると、例を確認して、それらがどのように基本的であるかを確認してください。
次のSQLドライバーがサポートされています。
試してみたい場合は、 docker-compose構成があり、データベースとプロジェクトの例からクエリによって供給される完全なLittle Letaretteシステムを起動します。
docker-compose upを実行してシステムを開始するだけです。
システムがアップしたら、「Letarette」コンテナ内でlrcli実行することでクエリ(およびその他のコマンド)を実行できます。
$ 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 Indenserにドキュメントを提供するクエリを見つける場所を知る必要があります。
サービスを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 Indencerの更新サイクルには2つの個別の手順があります。まず、現在のインデックス位置(インデックスリクエスト)よりも新しいドキュメントの「利息リスト」を取得し、そのリストにドキュメントを取得します(ドキュメントリクエスト)。
タイムスタンプはUTCです - 参照されたUNIX EPOCH NANOCONDS。
現在のインデックス位置は、ドキュメントIDとそのドキュメントの更新されたタイムスタンプの組み合わせです。インデックスポジションドキュメントが最後にフェッチされてから更新されている状況を処理するには、インデックスリクエストクエリが厳格なドキュメントの順序に従う必要があります。これは、主に更新タイムスタンプで並べ替え、ドキュメントIDで二次的に並べ替え、更新タイムスタンプが個別に変更されていないケースを処理することで最適に処理されます。 Example Projectのindexrequest.sqlを参照してください。
インデックスリクエストクエリは、3つのバインドされたパラメーターを取得します: afterDocument (String)、 fromTimeNanos (int64)およびdocumentLimit (uint16)は、2つの列の行を返す必要があります: id (string)とupdatedNanos (int64)。境界パラメーターは、コロンを付けてプレフィックスすることによって参照されます。
where :afterDocument > 2 ドキュメントリクエストの実装はさらに簡単です。これは、ドキュメントIDのリストのすべてのドキュメントを取得するだけであるため、DocumentRequest.sql。単一のバインドされたパラメーターwantedIDs 、ドキュメントID(文字列)のリストに置き換えられます。
ドキュメントリクエストクエリは、 id (String)、 updatedNanos (Int64)、 title (String)、 txt (String)およびalive (BOOL)の行を返す必要があります。
Letarette.sqlは、ビルドタグを使用して、サービスバイナリに組み込まれているドライバーを制御します。ビルドタグは、有効にしているドライバーと同じ名前を持っています。
ドライバービルドタグの現在のリストは次のとおりです。
たとえば、「Postgres」と「MySQL」サポートを使用してバイナリを構築するには:
$ go build -tags " postgres,mysql "Letarette.sqlサービスは、環境変数によって構成されています。
| 変数 | タイプ | 説明 |
|---|---|---|
| lrsql_nats_url | 弦 | NATSサービスが接続するためのURL、デフォルトは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ソースは、ドキュメントリクエストの処理のために提出されました。デフォルト: documentrequest.sql 。 |