2016-11-15 4 views
0

Solr 문서는 idscore을 포함하는 스키마를 가지고 있습니다. id 일 때마다 나는 이벤트 트리거를 기반으로 점수를 업데이트하고 있습니다. 그러나 나는 점수가 0이되기를 원하거나 1 주일 정도 지나면 서서히 줄이기를 원합니다. 기본적으로 나는 그 score 필드에 약 일주일의 TTL을 설정해야합니다. 또는 score의 값을 어떻게 든 시간에 의존해야합니다.Solr 문서에서 TTL을 업데이트하는 동안 특정 필드를 설정하는 방법

일주일 후에 id은 보유하고 싶지만 score은 보유하지 않기 때문에 TTL을 설정하지 않습니다. 어떻게 이것을 달성 할 수 있습니까 ??

인터넷을 통해 많이 탐색했지만 해결 방법을 찾을 수 없습니다. 그래서 스택 오버 플로우에서 여기 전문가에게 넘겨졌습니다.

도와주세요 !!

답변

1

TTL은 TTL에 도달 한 후 자동으로 문서를 삭제하고 하나의 필드를 수정하지 않는 것이 유용합니다.

here과 같이 시간 필드를 기준으로 문서를 확대 할 수 있습니다. 트릭은 recip 기능입니다. 1 주일 이상 지난 경우 부스트를 0으로 만들기 위해 표현을 수정할 수 있습니다.

http://localhost:8983/solr/select?q={!boost b=recip(ms(NOW,manufacturedate_dt),3.16e-11,1,1)}ipod