1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.codelibs.fess.es.log.exentity;
17
18 import java.time.LocalDateTime;
19 import java.time.ZoneId;
20 import java.time.ZonedDateTime;
21 import java.time.format.DateTimeFormatter;
22 import java.util.Map;
23
24 import org.codelibs.fess.entity.SearchLogEvent;
25 import org.codelibs.fess.es.log.bsentity.BsClickLog;
26
27
28
29
30 public class ClickLog extends BsClickLog implements SearchLogEvent {
31
32 private static final long serialVersionUID = 1L;
33
34 private Map<String, Object> fields;
35
36 @Override
37 public String getId() {
38 return asDocMeta().id();
39 }
40
41 public void setId(final String id) {
42 asDocMeta().id(id);
43 }
44
45 @Override
46 public Long getVersionNo() {
47 return asDocMeta().version();
48 }
49
50 public void setVersionNo(final Long version) {
51 asDocMeta().version(version);
52 }
53
54 public void addField(final String key, final Object value) {
55 fields.put(key, value);
56 }
57
58 public String getLogMessage() {
59 return getUrl();
60 }
61
62 @Override
63 public Map<String, Object> toSource() {
64 final Map<String, Object> sourceMap = super.toSource();
65 if (fields != null) {
66 sourceMap.putAll(fields);
67 }
68 return sourceMap;
69 }
70
71 @Override
72 protected void addFieldToSource(final Map<String, Object> sourceMap, final String field, final Object value) {
73 if (value instanceof LocalDateTime) {
74 final LocalDateTime ldt = (LocalDateTime) value;
75 final ZonedDateTime zdt = ZonedDateTime.of(ldt, ZoneId.systemDefault());
76 super.addFieldToSource(sourceMap, field, DateTimeFormatter.ISO_INSTANT.format(zdt));
77 } else {
78 super.addFieldToSource(sourceMap, field, value);
79 }
80 }
81
82 @Override
83 public String toString() {
84 return "ClickLog [queryRequestedAt=" + queryRequestedAt + ", requestedAt=" + requestedAt + ", queryId=" + queryId + ", docId="
85 + docId + ", userSessionId=" + userSessionId + ", url=" + url + ", order=" + order + ", docMeta=" + docMeta + "]";
86 }
87
88 @Override
89 public String getEventType() {
90 return "click";
91 }
92 }