如何使elasticsearch文件工作?

Arc*_*ald 6 ttl elasticsearch

我安装了debian包

我能够使用curl推送数据:

curl -XPUT 'http://mybox:9200/blog/user/dilbert' -d '{
  "name": "Dilbert Brown"
}'
Run Code Online (Sandbox Code Playgroud)

并获取它

curl -XGET 'http://mybox:9200/blog/user/dilbert'
Run Code Online (Sandbox Code Playgroud)

结果:

{
  "_index": "blog",
  "_type": "user",
  "_id": "dilbert",
  "_version": 2,
  "exists": true,
  "_source": {
    "name": "Dilbert Brown"
  }
}
Run Code Online (Sandbox Code Playgroud)

并找到它

curl -XGET 'http://mybox:9200/blog/user/_search?q=name:Dilbert+Brown&pretty=True'
Run Code Online (Sandbox Code Playgroud)

我想用5秒5秒的ttl推送相同的记录,并在尝试获取此条目时获得404 http状态代码.此条目也不应在搜索结果中可见.

注意:我尝试了各种搜索配置组合

他们都没有帮助我.

有人可以提到一个简单的步骤序列,让我实现目标结果吗?

ber*_*eal 11

这对我有用:

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
Run Code Online (Sandbox Code Playgroud)


Dan*_*iel 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'
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参阅