2011-11-06 8 views
18

ElasticSearchとNosqlデータベースを別々に使用するにはどうすればよいですか? ElasticSearchはデータベースとしても検索インデックスとしても使用できませんか?ElasticSarchとNoSQLデータベース

答えて

15

はい、ElasticSearchはデータソースとインデックスとして使用できます。

デフォルトでは、ElasticSearchシステムに送信する各ドキュメントはインデックスであり、元のドキュメントも保存されます。これは、ElasticSearchを照会するたびに、索引付けした元のJSON文書を取得できることを意味します。

大きなドキュメントがあり、少量のデータを取得できるようにするには、マッピングAPIを使用して特定のフィールドに「store」を「yes」に設定してから、あなたが望むかもしれない特定のフィールドを引き出すキー。

私のシステムでは、アドレスの自動補完があり、プロパティのアドレスフィールドのみを取得します。私のシステムの例を次に示します。

ユーザーがアドレスを選択すると、他のユーザーと一緒にJSONドキュメント全体がプルアップされます。

注:

  1. あなたはSQLでできるようにあなたが更新を行うことができない(のは言わせて、属性を高めるために、クエリに一致するすべてのアイテムを更新)
  2. あなたは、しかし、新しいドキュメントを追加し、置き換えることができますあなたが更新したいIDにある既存のもの。エラスティック検索は、各ドキュメントの_versionプロパティをインクリメントします。これは、開発者がオプティミスティックな並行処理を実行するために使用できますが、各ドキュメントの別のバージョン履歴は維持されません。最新バージョンのドキュメントのみを取得できます。
+0

クライアント側から直接Elasticsearchを照会することは安全ですか、ユーザー単位でクエリをトラッキングする場合は、サーバー側(nodejs)にElasticJsを実装する必要がありますか? –

関連する問題