6

debian パッケージをインストールしました

curl を使用してデータをプッシュできます。

curl -XPUT 'http://mybox:9200/blog/user/dilbert' -d '{
  "name": "Dilbert Brown"
}'

そして、それを取得します

curl -XGET 'http://mybox:9200/blog/user/dilbert'

結果:

{
  "_index": "blog",
  "_type": "user",
  "_id": "dilbert",
  "_version": 2,
  "exists": true,
  "_source": {
    "name": "Dilbert Brown"
  }
}

そして、それを見つけます

curl -XGET 'http://mybox:9200/blog/user/_search?q=name:Dilbert+Brown&pretty=True'

5 秒の ttl で同じレコードをプッシュしたいのですが、このエントリを取得しようとすると、5 秒後に 404 http ステータス コードが返されます。また、エントリが検索結果に表示されないようにする必要があります。

注: からの検索構成のさまざまな組み合わせを試しました。

それらのどれも私を助けませんでした。

目標とする結果を達成するための簡単な一連の手順について誰か言及できますか?

4

3 に答える 3

12

これが私にとってうまくいくものです:

curl -XPUT 'http://localhost:9200/blog/user/_mapping' -d '{"user": {"_ttl": {"enabled": true, "default": 5000}}}'

curl -XPUT 'http://localhost:9200/blog/user/phb' -d '{"name" : "Pointy-Haired Boss"}'

sleep 60  # this is the default deletion interval for the expired documents

curl -XGET http://localhost:9200/blog/user/phb  # 404
于 2013-06-06T05:22:15.167 に答える
7

@berealは正しいです。

ttl を機能させるには、最初にマッピングで有効にし (デフォルトでは無効になっています)、ドキュメントのインデックス作成時に TTL 値を設定する必要があります。

curl -XPUT 'mybox:9200/blog/user/_mapping?pretty' -d '{
  "user": {
     "_ttl": {"enabled": true}
}'

curl -XPUT 'mybox:9200/blog/user/dilbert' -d '{ "name" : "Dilbert Brown", "_ttl": "3m"}'

curl -XGET 'mybox:9200/blog/user/dilbert?pretty'

詳細については、参照してください

于 2014-02-22T00:55:19.440 に答える
0

新しいマッピング (タイプ) の作成中にのみ TTL を設定できることに注意してください。作成後に有効にすることはできません。製品のリリース後に有効にする方法をすでにいろいろ試しましたが、できません。そのため、TTL を有効にして作成した新しいコードを使用するようにコードを更新する必要があります。詳細については、こちらをご覧ください: http://grokbase.com/t/gg/elasticsearch/132v5y0w11/problem-with-ttl

于 2014-04-14T07:41:10.087 に答える