0

ドキュメントに記載されている例に従って、elasticsearch のドキュメントに ttl を追加しています: http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/docs-index_.html#index-ttl

Chrome で Sense ツールを使用して、次のことを試し、ドキュメントが 5 秒で消えることを期待しました。

PUT /twitter/tweets/2
{
    "_ttl" : "5000",
    "user" : "Romonov",
    "TestField" : "TestData2"
}

PUT /twitters/tweetsy/1?ttl=5000
{
    "user" : "Romonov",
    "TestField" : "TestData1"
}

上記のいずれも機能せず、ドキュメントは 5 秒後にまだ表示されています。また、そのインデックスにドキュメントを作成する前に enable _ttl を設定しようとしました。

PUT /twig/twigsy/_mapping?pretty
{
    "user" : {"_ttl": {"enabled": true}}
}

ここで、インデックス小枝にドキュメントをまだ PUT していません。しかし、これはエラーで返されます:

{
   "error": "IndexMissingException[[twig] missing]",
   "status": 404
}

curl(Windowsマシンにインストール)で同じことを試しましたが、同じエラーが発生しました:

C:\WINDOWS\system32>curl -XPUT "http://localhost:9200/facebook/fb/_mapping?pretty" -d "{ "user" : {"_ttl": {"enabled": true}}"
{
  "error" : "IndexMissingException[[facebook] missing]",
  "status" : 404
}

何が欠けているのだろうか。

4

2 に答える 2

2

TTLのドキュメントでは、次のように説明されています。

期限切れのドキュメントは、定期的に自動的に削除されます。必要に応じて、indexes.ttl.interval を動的に設定できます。デフォルト値は 60 秒です。

そのため、ドキュメントは TTL に達してもすぐには削除されず、次の期限切れタスクが実行されたときにのみ削除されます。そのジョブの実行速度を下げることはできますが、実行するとパフォーマンスが低下します。

于 2014-08-22T02:39:48.430 に答える
2


1.elasticsearch.yml ファイルに次の行を追加します。

indices.ttl.interval: 7d

2. 次の行を使用して、elasticsearch.yml と同じ場所に default-mapping.json ドキュメントを作成します。

{
    _default_ : { 
        "_ttl" : { 
            "enabled" : true, "default" : "7d" 
            }
        }
}

これら 2 つのことを行った後に作成されたすべての新しいクラスターでは、ttl が 7 日間有効になっています。これまでの私の観察では、これらの新しいクラスターで作成されたすべてのインデックスに適用されます。

于 2014-08-25T22:23:28.690 に答える