2014-09-29 6 views
1

elastic4s를 사용하여 탄성 검색을 구현하고 있습니다. 나는 ttl을 가능하게하려고 노력하고있다. 그러나 나는 그것을 이해할 수 없었다? 예, 그렇습니다. _ttl을 사용하도록 설정하면 코드가 어디에서 어떻게 구현되어야합니까?elastic4s가있는 scala에서 ttl 사용

index into "documents/doc" fields (
    "title" -> document.title, 
    "description" -> document.description, 
    "_ttl" -> 30.minutes.toMillis // TTL should be passed as milliseconds number 
) 

UPD : 또한, 당신은 이미 사용하도록 설정 한 경우 모두 당신이 필요 같은 문서를 색인 할 때 필드로 전달 할 때 나는 elastic4s

답변

1

의 최신 버전 1.3.2을 사용하고 있습니다 ttl에 대한 elastic4s의 특별한 DSL 지원입니다 :

index into "documents/doc" ttl 30.minutes.toMillis fields (
    "title" -> document.title, 
    "description" -> document.description 
) 
+0

감사합니다. 따라서 귀하의 예에서이 항목은 30 분 후에 자동으로 삭제됩니다. 그럴까요? 나는 단지 5 초 또는 1 분으로 시도했지만 ttl 시간이 지나면 지우지 않는다? – igalbenardete

+0

TTL은 30 분이지만 일부 catch가 있습니다. elasticsearch는 만료 후 즉시 삭제하지 않습니다. elasticsearch에서 삭제할 간격이 있습니다. http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/mapping-ttl-field.html – alno

+0

의 마지막 단락을 참조하십시오. 또한 elastic4s 1.4.9 이후 , ttl에 대한 일반적인 스칼라 지속 시간을 사용할 수 있습니다. 예를 들어 'client.execute {전자/전화 "필드의 인덱스"vendor "->"blackberry "ttl 1.second } – monkjack