1

Elasticsearch で複数の json にインデックスを付ける必要があります。インデックス ID は、elasticserach によって自動的に作成されるのではなく、ユーザーが指定する必要があります。

Elasticsearch による自動インデックス ID の作成を停止する方法と、希望する ID をデータのインデックス作成に使用する方法を教えてください。

以下は、データをインデックス化するための node.js コードの一部です。

elasticSearchClient.index('index_name', 'type', json)
                .on('data', function(data) {
                    console.log("************ "+data+" ****************")
                })
                .exec()

どんな助けでも大歓迎です!

よろしく

4

4 に答える 4

2

idjsonドキュメントにフィールドを含めるだけです。ドキュメントから自動的に抽出され、URLに配置されます。実際、core.jsスクリプトには次のロジックが含まれています。

if (document.id) {
    path += "/" + document.id
    method = 'PUT'
    delete document.id
}
于 2012-10-03T09:19:27.903 に答える
2

インデックス ID を指定しない場合、ドキュメントのインデックス ID は Elasticsearch によって自動作成されます。

したがって、以下のコードを使用して、インデックス作成ドキュメントのインデックス作成 ID を伝えます。

var commands = []
 commands.push({ "index" : { "_index" :'opt', "_type" : "art", "_id":my_id} })
 commands.push(index_ingjson_doc)

 elasticSearchClient.bulk(commands, {})
                            .on('data', function(data) {
                            }).on('error', function(error){})
                            .exec();

このようにして、問題を解決しました!他のいくつかの解決策が可能かもしれませんが、今のところ上記のコードを使用しています。

于 2012-10-17T07:43:10.647 に答える
1

私があなたを正しく理解している場合は、"_id": whateverJSON に入れて、index.mapping._id.indexedが に設定されていることを確認してくださいtrue

于 2012-10-03T07:56:26.937 に答える
1

elasticSearchClient.bulk() は私の問題の解決策です。

参考: https ://github.com/phillro/node-elasticsearch-client

于 2012-10-15T08:51:30.237 に答える