0

データを追加し、elasticsearch インデックスを更新したいと考えています。私は Elasticsearch クライアントの経験があまりないので、jQuery ですべてを処理しようとしています。

データを追加するには、まず最高の をチェックしてidから、PUT 経由で JSON オブジェクトを送信します。

var persondata = { 
    "field1": $('#field1').val(),
    "field2": $('#field2').val(),
    "field3": $('#field3').val()
};

$.ajax({
    type: "POST",
    url: 'http://localhost:9200/_search',
    dataType: 'json',
    data: JSON.stringify( { "query" : { "match_all" : {} }, "sort": [ { "_uid": "desc" } ] } )
})
.done(function( result ){
    var highestid = parseInt(result.hits.hits[0]._id, 10) + 1;

    $.ajax({
        type: "PUT",
        url: 'http://localhost:9200/mytable/persons/'+ highestid,
        dataType: 'json',
        data: JSON.stringify( persondata )
    });
});

curl を介してデータを追加するには、次のコードを見つけました。

curl -XPUT "http://localhost:9200/movies/movie/1" -d'
{
    "title": "The Godfather",
    "director": "Francis Ford Coppola",
    "year": 1972
}'

(出典: http://joelabrahamsson.com/elasticsearch-101/ )

私のコードが機能していないので、後に「-d」が必要かどうか疑問に思っていidます。もちろん、これを単純に追加しようとしましたが、うまくいきません。
この「-d」は何のためですか?
また、jQuery 経由で Elasticsearch インデックスにデータを追加するにはどうすればよいですか?

4

1 に答える 1

1

このコードを使用して、データを作成または更新できます。

$.ajax({

        type: "PUT",
        async: false,
        url: 'http://{localhost}:9200/twitter/tweet/9',
        data: JSON.stringify({"user" : "kimchy","post_date" : "2009-11-15T14:12:12","message" : "trying out Elasticsearch"}),
        dataType: "json",
        contentType: "application/json; charset=utf-8",
        success: function (msg) 
                { 
                    alert("the json is "+ msg._index);
                    $('#stage').html(msg._index );
                    $('#stage').append(" type : "+msg._type );
                    $('#stage').append(" id :"+msg._id)
                },
        error: function (err)
        { alert(err.responseText)}
    });

URLにインデックス、タイプ、およびIDを配置する必要があることに注意してください。

于 2014-07-17T12:45:14.253 に答える