improve click log

This commit is contained in:
Shinsuke Sugaya 2015-11-12 20:32:02 +09:00
parent daaf3f1be2
commit 07aa2c0ccf
40 changed files with 1695 additions and 357 deletions

View file

@ -33,6 +33,14 @@
"type" : "string",
"index" : "not_analyzed"
},
"docId" : {
"type" : "string",
"index" : "not_analyzed"
},
"queryId" : {
"type" : "string",
"index" : "not_analyzed"
},
"userInfoId" : {
"type" : "string",
"index" : "not_analyzed"
@ -70,17 +78,32 @@
"enabled" : false
},
"properties" : {
"queryRequestedAt" : {
"type" : "date",
"format" : "date_optional_time"
},
"requestedAt" : {
"type" : "date",
"format" : "date_optional_time"
},
"searchLogId" : {
"queryId" : {
"type" : "string",
"index" : "not_analyzed"
},
"docId" : {
"type" : "string",
"index" : "not_analyzed"
},
"userSessionId" : {
"type" : "string",
"index" : "not_analyzed"
},
"url" : {
"type" : "string",
"index" : "not_analyzed"
},
"order" : {
"type" : "integer"
}
}
},
@ -97,6 +120,10 @@
"type" : "string",
"index" : "not_analyzed"
},
"queryId" : {
"type" : "string",
"index" : "not_analyzed"
},
"clientIp" : {
"type" : "string",
"index" : "not_analyzed"

View file

@ -62,7 +62,7 @@ public class EsApiManager extends BaseApiManager {
public boolean matches(final HttpServletRequest request) {
final String servletPath = request.getServletPath();
if (servletPath.startsWith(pathPrefix)) {
final FessLoginAssist loginAssist = ComponentUtil.getLoginAssist();
final FessLoginAssist loginAssist = ComponentUtil.getComponent(FessLoginAssist.class);
return loginAssist.getSessionUserBean().map(user -> user.hasRoles(acceptedRoles)).orElseGet(() -> Boolean.FALSE).booleanValue();
}
return false;
@ -142,6 +142,6 @@ public class EsApiManager extends BaseApiManager {
}
private SessionManager getSessionManager() {
return ComponentUtil.getSessionManager();
return ComponentUtil.getComponent(SessionManager.class);
}
}

View file

@ -31,7 +31,6 @@ import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang3.StringEscapeUtils;
import org.codelibs.core.CoreLibConstants;
import org.codelibs.core.lang.StringUtil;
import org.codelibs.core.misc.DynamicProperties;
@ -51,11 +50,13 @@ import org.codelibs.fess.helper.HotSearchWordHelper;
import org.codelibs.fess.helper.HotSearchWordHelper.Range;
import org.codelibs.fess.helper.LabelTypeHelper;
import org.codelibs.fess.helper.QueryHelper;
import org.codelibs.fess.helper.SystemHelper;
import org.codelibs.fess.helper.UserInfoHelper;
import org.codelibs.fess.util.ComponentUtil;
import org.codelibs.fess.util.DocumentUtil;
import org.codelibs.fess.util.FacetResponse;
import org.codelibs.fess.util.FacetResponse.Field;
import org.elasticsearch.script.Script;
import org.lastaflute.web.util.LaRequestUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -361,6 +362,7 @@ public class JsonApiManager extends BaseApiManager {
final FieldHelper fieldHelper = ComponentUtil.getFieldHelper();
final SearchService searchService = ComponentUtil.getComponent(SearchService.class);
final FavoriteLogService favoriteLogService = ComponentUtil.getComponent(FavoriteLogService.class);
final SystemHelper systemHelper = ComponentUtil.getSystemHelper();
try {
final String docId = request.getParameter("docId");
@ -371,46 +373,52 @@ public class JsonApiManager extends BaseApiManager {
throw new WebApiException(6, "No searched urls.");
}
searchService
.getDocumentByDocId(docId, new String[] { fieldHelper.idField, fieldHelper.urlField, fieldHelper.favoriteCountField })
.ifPresent(doc -> {
final String favoriteUrl = doc == null ? null : DocumentUtil.getValue(doc, fieldHelper.urlField, String.class);
final String userCode = userInfoHelper.getUserCode();
searchService.getDocumentByDocId(docId, new String[] { fieldHelper.urlField }).ifPresent(doc -> {
final String favoriteUrl = DocumentUtil.getValue(doc, fieldHelper.urlField, String.class);
final String userCode = userInfoHelper.getUserCode();
if (StringUtil.isBlank(userCode)) {
throw new WebApiException(2, "No user session.");
} else if (StringUtil.isBlank(favoriteUrl)) {
throw new WebApiException(2, "URL is null.");
}
if (StringUtil.isBlank(userCode)) {
throw new WebApiException(2, "No user session.");
} else if (StringUtil.isBlank(favoriteUrl)) {
throw new WebApiException(2, "URL is null.");
}
boolean found = false;
for (final String id : docIds) {
if (docId.equals(id)) {
found = true;
break;
}
}
if (!found) {
throw new WebApiException(5, "Not found: " + favoriteUrl);
}
boolean found = false;
for (final String id : docIds) {
if (docId.equals(id)) {
found = true;
break;
}
}
if (!found) {
throw new WebApiException(5, "Not found: " + favoriteUrl);
}
if (!favoriteLogService.addUrl(userCode, favoriteUrl)) {
throw new WebApiException(4, "Failed to add url: " + favoriteUrl);
}
if (!favoriteLogService.addUrl(userCode, (userInfo, favoriteLog) -> {
favoriteLog.setUserInfoId(userInfo.getId());
favoriteLog.setUrl(favoriteUrl);
favoriteLog.setDocId(docId);
favoriteLog.setQueryId(queryId);
favoriteLog.setCreatedAt(systemHelper.getCurrentTimeAsLocalDateTime());
})) {
throw new WebApiException(4, "Failed to add url: " + favoriteUrl);
}
final String id = DocumentUtil.getValue(doc, fieldHelper.idField, String.class);
final Long count = DocumentUtil.getValue(doc, fieldHelper.favoriteCountField, Long.class);
if (count != null) {
searchService.update(id, fieldHelper.favoriteCountField, count.longValue() + 1);
} else {
throw new WebApiException(7, "Failed to update count: " + favoriteUrl);
}
final String id = DocumentUtil.getValue(doc, fieldHelper.idField, String.class);
searchService.update(id, builder -> {
Script script = new Script("ctx._source." + fieldHelper.favoriteCountField + "+=1");
builder.setScript(script);
Map<String, Object> upsertMap = new HashMap<>();
upsertMap.put(fieldHelper.favoriteCountField, 1);
builder.setUpsert(upsertMap);
builder.setRefresh(true);
});
writeJsonResponse(0, "\"result\":\"ok\"", null);
writeJsonResponse(0, "\"result\":\"ok\"", null);
}).orElse(() -> {
throw new WebApiException(6, "Not found: " + docId);
});
}).orElse(() -> {
throw new WebApiException(6, "Not found: " + docId);
});
} catch (final Exception e) {
int status;
@ -576,7 +584,7 @@ public class JsonApiManager extends BaseApiManager {
buf.append(obj);
} else if (obj instanceof Date) {
final SimpleDateFormat sdf = new SimpleDateFormat(CoreLibConstants.DATE_FORMAT_ISO_8601_EXTEND);
buf.append('\"').append(StringEscapeUtils.escapeXml(sdf.format(obj))).append('\"');
buf.append('\"').append(escapeJsonString(sdf.format(obj))).append('\"');
} else {
buf.append('\"').append(escapeJsonString(obj.toString())).append('\"');
}

View file

@ -18,12 +18,14 @@ package org.codelibs.fess.app.service;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.function.BiConsumer;
import javax.annotation.Resource;
import org.codelibs.fess.es.log.exbhv.FavoriteLogBhv;
import org.codelibs.fess.es.log.exbhv.UserInfoBhv;
import org.codelibs.fess.es.log.exentity.FavoriteLog;
import org.codelibs.fess.es.log.exentity.UserInfo;
import org.codelibs.fess.helper.SystemHelper;
import org.dbflute.cbean.result.ListResultBean;
@ -37,12 +39,10 @@ public class FavoriteLogService {
@Resource
protected FavoriteLogBhv favoriteLogBhv;
public boolean addUrl(final String userCode, final String url) {
public boolean addUrl(String userCode, BiConsumer<UserInfo, FavoriteLog> favoriteLogLambda) {
return userInfoBhv.selectByPK(userCode).map(userInfo -> {
final FavoriteLog favoriteLog = new FavoriteLog();
favoriteLog.setUserInfoId(userInfo.getId());
favoriteLog.setUrl(url);
favoriteLog.setCreatedAt(systemHelper.getCurrentTimeAsLocalDateTime());
favoriteLogLambda.accept(userInfo, favoriteLog);
favoriteLogBhv.insert(favoriteLog);
return true;
}).orElse(false);

View file

@ -35,6 +35,7 @@ import org.apache.commons.lang3.StringUtils;
import org.codelibs.core.lang.StringUtil;
import org.codelibs.core.misc.DynamicProperties;
import org.codelibs.fess.Constants;
import org.codelibs.fess.app.web.base.login.FessLoginAssist;
import org.codelibs.fess.entity.SearchRenderData;
import org.codelibs.fess.entity.SearchRequestParams;
import org.codelibs.fess.es.client.FessEsClient;
@ -48,10 +49,14 @@ import org.codelibs.fess.helper.SystemHelper;
import org.codelibs.fess.helper.UserInfoHelper;
import org.codelibs.fess.util.ComponentUtil;
import org.codelibs.fess.util.QueryResponseList;
import org.codelibs.fess.util.QueryUtil;
import org.dbflute.optional.OptionalEntity;
import org.dbflute.util.DfTypeUtil;
import org.elasticsearch.ElasticsearchException;
import org.elasticsearch.action.bulk.BulkRequestBuilder;
import org.elasticsearch.action.bulk.BulkResponse;
import org.elasticsearch.action.update.UpdateRequestBuilder;
import org.elasticsearch.action.update.UpdateResponse;
import org.elasticsearch.index.query.QueryBuilders;
public class SearchService {
@ -166,6 +171,8 @@ public class SearchService {
}
data.setExecTime(execTime);
String queryId = QueryUtil.generateId();
data.setPageSize(queryResponseList.getPageSize());
data.setCurrentPageNumber(queryResponseList.getCurrentPageNumber());
data.setAllRecordCount(queryResponseList.getAllRecordCount());
@ -179,15 +186,16 @@ public class SearchService {
data.setQueryTime(queryResponseList.getQueryTime());
data.setSearchQuery(query);
data.setRequestedTime(requestedTime);
data.setQueryId(queryId);
// search log
if (searchLogSupport) {
storeSearchLog(request, DfTypeUtil.toLocalDateTime(requestedTime), query, pageStart, pageSize, queryResponseList);
storeSearchLog(request, DfTypeUtil.toLocalDateTime(requestedTime), queryId, query, pageStart, pageSize, queryResponseList);
}
}
protected void storeSearchLog(final HttpServletRequest request, final LocalDateTime requestedTime, final String query,
final int pageStart, final int pageSize, final QueryResponseList queryResponseList) {
protected void storeSearchLog(final HttpServletRequest request, final LocalDateTime requestedTime, final String queryId,
final String query, final int pageStart, final int pageSize, final QueryResponseList queryResponseList) {
final SearchLogHelper searchLogHelper = ComponentUtil.getSearchLogHelper();
final SearchLog searchLog = new SearchLog();
@ -199,6 +207,7 @@ public class SearchService {
}
}
searchLog.setQueryId(queryId);
searchLog.setHitCount(queryResponseList.getAllRecordCount());
searchLog.setResponseTime(queryResponseList.getExecTime());
searchLog.setQueryTime(queryResponseList.getQueryTime());
@ -207,7 +216,7 @@ public class SearchService {
searchLog.setRequestedAt(requestedTime);
searchLog.setQueryOffset(pageStart);
searchLog.setQueryPageSize(pageSize);
ComponentUtil.getLoginAssist().getSessionUserBean().ifPresent(user -> {
ComponentUtil.getComponent(FessLoginAssist.class).getSessionUserBean().ifPresent(user -> {
searchLog.setUser(user.getUserId());
});
@ -338,6 +347,17 @@ public class SearchService {
return fessEsClient.update(fieldHelper.docIndex, fieldHelper.docType, id, field, value);
}
public boolean update(final String id, Consumer<UpdateRequestBuilder> builderLambda) {
try {
UpdateRequestBuilder builder = fessEsClient.prepareUpdate(fieldHelper.docIndex, fieldHelper.docType, id);
builderLambda.accept(builder);
UpdateResponse response = builder.execute().actionGet();
return response.isCreated();
} catch (final ElasticsearchException e) {
throw new FessEsClientException("Failed to update doc " + id, e);
}
}
public boolean bulkUpdate(final Consumer<BulkRequestBuilder> consumer) {
final BulkRequestBuilder builder = fessEsClient.prepareBulk();
consumer.accept(builder);

View file

@ -15,13 +15,23 @@
*/
package org.codelibs.fess.app.web.error;
import org.codelibs.fess.app.web.search.SearchForm;
import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;
// TODO workaround
public class ErrorForm extends SearchForm {
public class ErrorForm implements Serializable {
private static final long serialVersionUID = 1L;
public Map<String, String[]> fields = new HashMap<>();
public String query;
public String url;
public String num;
public String sort;
public String lang;
}

View file

@ -70,7 +70,7 @@ public class GoAction extends FessSearchAction {
doc = fessEsClient.getDocument(fieldHelper.docIndex, fieldHelper.docType, queryRequestBuilder -> {
final TermQueryBuilder termQuery = QueryBuilders.termQuery(fieldHelper.docIdField, form.docId);
queryRequestBuilder.setQuery(termQuery);
queryRequestBuilder.addFields(queryHelper.getResponseFields());
queryRequestBuilder.addFields(fieldHelper.urlField);
return true;
}).get();
} catch (final Exception e) {
@ -98,12 +98,10 @@ public class GoAction extends FessSearchAction {
clickLog.setQueryRequestedAt(DfTypeUtil.toLocalDateTime(Long.parseLong(form.rt)));
clickLog.setUserSessionId(userSessionId);
clickLog.setDocId(form.docId);
long clickCount = 0;
final Integer count = DocumentUtil.getValue(doc, fieldHelper.clickCountField, Integer.class);
if (count != null) {
clickCount = count.longValue();
clickLog.setQueryId(form.queryId);
if (form.order != null) {
clickLog.setOrder(form.order);
}
clickLog.setClickCount(clickCount);
searchLogHelper.addClickLog(clickLog);
}
}

View file

@ -15,12 +15,21 @@
*/
package org.codelibs.fess.app.web.go;
import javax.validation.constraints.Size;
import org.lastaflute.web.validation.Required;
public class GoForm {
//@Required(target = "go,cache")
//@Maxbytelength(maxbytelength = 100)
@Required
@Size(max = 100)
public String docId;
@Size(max = 10000)
public String rt;
public String hash;
public String queryId;
public Integer order;
}

View file

@ -97,13 +97,14 @@ public class SearchAction extends FessSearchAction {
protected HtmlResponse doSearch(final SearchForm form) {
searchAvailable();
validate(form, messages -> {}, () -> asHtml(path_SearchJsp));
if (viewHelper.isUseSession()) {
final HttpSession session = request.getSession(false);
if (session != null) {
final Object resultsPerPage = session.getAttribute(Constants.RESULTS_PER_PAGE);
if (resultsPerPage != null) {
form.num = resultsPerPage.toString();
if (resultsPerPage instanceof Integer) {
form.num = (Integer) resultsPerPage;
}
}
}
@ -133,14 +134,13 @@ public class SearchAction extends FessSearchAction {
try {
final WebRenderData renderData = new WebRenderData(data);
searchService.search(request, form, renderData);
form.rt = Long.toString(renderData.getRequestedTime());
// favorite or screenshot
if (favoriteSupport || screenShotManager != null) {
final String searchQuery = renderData.getSearchQuery();
final String queryId = renderData.getQueryId();
final List<Map<String, Object>> documentItems = renderData.getDocumentItems();
form.queryId = userInfoHelper.generateQueryId(searchQuery, documentItems);
userInfoHelper.storeQueryId(queryId, documentItems);
if (screenShotManager != null) {
screenShotManager.storeRequest(form.queryId, documentItems);
screenShotManager.storeRequest(queryId, documentItems);
data.register("screenShotSupport", true);
}
}
@ -164,21 +164,17 @@ public class SearchAction extends FessSearchAction {
protected HtmlResponse doMove(final SearchForm form, final int move) {
int start = queryHelper.getDefaultStart();
if (StringUtil.isNotBlank(form.pn)) {
try {
int pageNumber = Integer.parseInt(form.pn);
if (pageNumber > 0) {
pageNumber = pageNumber + move;
if (pageNumber < 1) {
pageNumber = 1;
}
start = (pageNumber - 1) * form.getPageSize();
if (form.pn != null) {
int pageNumber = form.pn;
if (pageNumber > 0) {
pageNumber = pageNumber + move;
if (pageNumber < 1) {
pageNumber = 1;
}
} catch (final NumberFormatException e) {
// ignore
start = (pageNumber - 1) * form.getPageSize();
}
}
form.start = String.valueOf(start);
form.start = start;
return doSearch(form);
}
@ -273,6 +269,12 @@ public class SearchAction extends FessSearchAction {
this.data = data;
}
@Override
public void setQueryId(final String queryId) {
data.register("queryId", queryId);
super.setQueryId(queryId);
}
@Override
public void setDocumentItems(final List<Map<String, Object>> documentItems) {
data.register("documentItems", documentItems);

View file

@ -19,12 +19,14 @@ import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;
import org.codelibs.core.lang.StringUtil;
import javax.validation.constraints.Size;
import org.codelibs.fess.entity.FacetInfo;
import org.codelibs.fess.entity.GeoInfo;
import org.codelibs.fess.entity.SearchRequestParams;
import org.codelibs.fess.helper.QueryHelper;
import org.codelibs.fess.util.ComponentUtil;
import org.lastaflute.web.validation.theme.conversion.ValidateTypeFailure;
public class SearchForm implements SearchRequestParams, Serializable {
@ -32,59 +34,30 @@ public class SearchForm implements SearchRequestParams, Serializable {
public Map<String, String[]> fields = new HashMap<>();
//@Maxbytelength(maxbytelength = 1000)
@Size(max = 1000)
public String query;
@Size(max = 1000)
public String sort;
public String num;
@ValidateTypeFailure
public Integer num;
public String[] lang;
public String additional[];
//@Maxbytelength(maxbytelength = 10)
@Size(max = 10)
public String op;
//@Digits(integer=10, fraction=0)
public String start;
@ValidateTypeFailure
public Integer start;
//@Digits(integer=10, fraction=0)
public String pn;
//@Maxbytelength(maxbytelength = 1000)
public String queryId;
@ValidateTypeFailure
public Integer pn;
// response redirect
//@Required(target = "go")
//@Maxbytelength(maxbytelength = 4000)
public String rt;
//@Required(target = "go,cache")
//@Maxbytelength(maxbytelength = 100)
public String docId;
public String[] hq;
//@Maxbytelength(maxbytelength = 1000)
public String hash;
// xml/json
//@Maxbytelength(maxbytelength = 20)
public String type;
//@Maxbytelength(maxbytelength = 255)
public String callback;
public String[] fn;
// hotsearchword
//@Maxbytelength(maxbytelength = 100)
public String range;
// geo
public GeoInfo geo;
@ -97,53 +70,30 @@ public class SearchForm implements SearchRequestParams, Serializable {
public Map<String, String[]> options = new HashMap<>();
public String username;
private int startPosition = -1;
private int pageSize = -1;
@Override
public int getStartPosition() {
if (startPosition != -1) {
return startPosition;
}
final QueryHelper queryHelper = ComponentUtil.getQueryHelper();
if (StringUtil.isBlank(start)) {
startPosition = queryHelper.getDefaultStart();
} else {
try {
startPosition = Integer.parseInt(start);
} catch (final NumberFormatException e) {
startPosition = queryHelper.getDefaultStart();
}
if (start == null) {
start = queryHelper.getDefaultStart();
}
start = String.valueOf(startPosition);
return startPosition;
return start;
}
@Override
public int getPageSize() {
if (pageSize != -1) {
return pageSize;
}
final QueryHelper queryHelper = ComponentUtil.getQueryHelper();
if (StringUtil.isBlank(num)) {
pageSize = queryHelper.getDefaultPageSize();
if (num == null) {
num = queryHelper.getDefaultPageSize();
} else {
try {
pageSize = Integer.parseInt(num);
if (pageSize > queryHelper.getMaxPageSize() || pageSize <= 0) {
pageSize = queryHelper.getMaxPageSize();
if (num.intValue() > queryHelper.getMaxPageSize() || num.intValue() <= 0) {
num = queryHelper.getMaxPageSize();
}
} catch (final NumberFormatException e) {
pageSize = queryHelper.getDefaultPageSize();
num = queryHelper.getDefaultPageSize();
}
}
num = String.valueOf(pageSize);
return pageSize;
return num;
}
@Override

View file

@ -56,6 +56,8 @@ public class SearchRenderData {
private long requestedTime;
private String queryId;
public void setDocumentItems(final List<Map<String, Object>> documentItems) {
this.documentItems = documentItems;
}
@ -124,6 +126,10 @@ public class SearchRenderData {
this.requestedTime = requestedTime;
}
public void setQueryId(final String queryId) {
this.queryId = queryId;
}
public List<Map<String, Object>> getDocumentItems() {
return documentItems;
}
@ -192,4 +198,8 @@ public class SearchRenderData {
return requestedTime;
}
public String getQueryId() {
return queryId;
}
}

View file

@ -74,9 +74,13 @@ public abstract class BsClickLogBhv extends EsAbstractBehavior<ClickLog, ClickLo
protected <RESULT extends ClickLog> RESULT createEntity(Map<String, Object> source, Class<? extends RESULT> entityType) {
try {
final RESULT result = entityType.newInstance();
result.setQueryRequestedAt(DfTypeUtil.toLocalDateTime(source.get("queryRequestedAt")));
result.setRequestedAt(DfTypeUtil.toLocalDateTime(source.get("requestedAt")));
result.setSearchLogId(DfTypeUtil.toString(source.get("searchLogId")));
result.setQueryId(DfTypeUtil.toString(source.get("queryId")));
result.setDocId(DfTypeUtil.toString(source.get("docId")));
result.setUserSessionId(DfTypeUtil.toString(source.get("userSessionId")));
result.setUrl(DfTypeUtil.toString(source.get("url")));
result.setOrder(DfTypeUtil.toInteger(source.get("order")));
return result;
} catch (InstantiationException | IllegalAccessException e) {
final String msg = "Cannot create a new instance: " + entityType.getName();

View file

@ -76,6 +76,8 @@ public abstract class BsFavoriteLogBhv extends EsAbstractBehavior<FavoriteLog, F
final RESULT result = entityType.newInstance();
result.setCreatedAt(DfTypeUtil.toLocalDateTime(source.get("createdAt")));
result.setUrl(DfTypeUtil.toString(source.get("url")));
result.setDocId(DfTypeUtil.toString(source.get("docId")));
result.setQueryId(DfTypeUtil.toString(source.get("queryId")));
result.setUserInfoId(DfTypeUtil.toString(source.get("userInfoId")));
return result;
} catch (InstantiationException | IllegalAccessException e) {

View file

@ -76,6 +76,7 @@ public abstract class BsSearchLogBhv extends EsAbstractBehavior<SearchLog, Searc
final RESULT result = entityType.newInstance();
result.setAccessType(DfTypeUtil.toString(source.get("accessType")));
result.setUser(DfTypeUtil.toString(source.get("user")));
result.setQueryId(DfTypeUtil.toString(source.get("queryId")));
result.setClientIp(DfTypeUtil.toString(source.get("clientIp")));
result.setHitCount(DfTypeUtil.toLong(source.get("hitCount")));
result.setQueryOffset(DfTypeUtil.toInteger(source.get("queryOffset")));

View file

@ -37,15 +37,27 @@ public class BsClickLog extends EsAbstractEntity {
// ===================================================================================
// Attribute
// =========
/** queryRequestedAt */
protected LocalDateTime queryRequestedAt;
/** requestedAt */
protected LocalDateTime requestedAt;
/** searchLogId */
protected String searchLogId;
/** queryId */
protected String queryId;
/** docId */
protected String docId;
/** userSessionId */
protected String userSessionId;
/** url */
protected String url;
/** order */
protected Integer order;
// [Referrers] *comment only
// ===================================================================================
@ -67,15 +79,27 @@ public class BsClickLog extends EsAbstractEntity {
@Override
public Map<String, Object> toSource() {
Map<String, Object> sourceMap = new HashMap<>();
if (queryRequestedAt != null) {
sourceMap.put("queryRequestedAt", queryRequestedAt);
}
if (requestedAt != null) {
sourceMap.put("requestedAt", requestedAt);
}
if (searchLogId != null) {
sourceMap.put("searchLogId", searchLogId);
if (queryId != null) {
sourceMap.put("queryId", queryId);
}
if (docId != null) {
sourceMap.put("docId", docId);
}
if (userSessionId != null) {
sourceMap.put("userSessionId", userSessionId);
}
if (url != null) {
sourceMap.put("url", url);
}
if (order != null) {
sourceMap.put("order", order);
}
return sourceMap;
}
@ -85,9 +109,13 @@ public class BsClickLog extends EsAbstractEntity {
@Override
protected String doBuildColumnString(String dm) {
StringBuilder sb = new StringBuilder();
sb.append(dm).append(queryRequestedAt);
sb.append(dm).append(requestedAt);
sb.append(dm).append(searchLogId);
sb.append(dm).append(queryId);
sb.append(dm).append(docId);
sb.append(dm).append(userSessionId);
sb.append(dm).append(url);
sb.append(dm).append(order);
if (sb.length() > dm.length()) {
sb.delete(0, dm.length());
}
@ -98,6 +126,16 @@ public class BsClickLog extends EsAbstractEntity {
// ===================================================================================
// Accessor
// ========
public LocalDateTime getQueryRequestedAt() {
checkSpecifiedProperty("queryRequestedAt");
return queryRequestedAt;
}
public void setQueryRequestedAt(LocalDateTime value) {
registerModifiedProperty("queryRequestedAt");
this.queryRequestedAt = value;
}
public LocalDateTime getRequestedAt() {
checkSpecifiedProperty("requestedAt");
return requestedAt;
@ -108,14 +146,34 @@ public class BsClickLog extends EsAbstractEntity {
this.requestedAt = value;
}
public String getSearchLogId() {
checkSpecifiedProperty("searchLogId");
return convertEmptyToNull(searchLogId);
public String getQueryId() {
checkSpecifiedProperty("queryId");
return convertEmptyToNull(queryId);
}
public void setSearchLogId(String value) {
registerModifiedProperty("searchLogId");
this.searchLogId = value;
public void setQueryId(String value) {
registerModifiedProperty("queryId");
this.queryId = value;
}
public String getDocId() {
checkSpecifiedProperty("docId");
return convertEmptyToNull(docId);
}
public void setDocId(String value) {
registerModifiedProperty("docId");
this.docId = value;
}
public String getUserSessionId() {
checkSpecifiedProperty("userSessionId");
return convertEmptyToNull(userSessionId);
}
public void setUserSessionId(String value) {
registerModifiedProperty("userSessionId");
this.userSessionId = value;
}
public String getUrl() {
@ -127,4 +185,14 @@ public class BsClickLog extends EsAbstractEntity {
registerModifiedProperty("url");
this.url = value;
}
public Integer getOrder() {
checkSpecifiedProperty("order");
return order;
}
public void setOrder(Integer value) {
registerModifiedProperty("order");
this.order = value;
}
}

View file

@ -43,6 +43,12 @@ public class BsFavoriteLog extends EsAbstractEntity {
/** url */
protected String url;
/** docId */
protected String docId;
/** queryId */
protected String queryId;
/** userInfoId */
protected String userInfoId;
@ -73,6 +79,12 @@ public class BsFavoriteLog extends EsAbstractEntity {
if (url != null) {
sourceMap.put("url", url);
}
if (docId != null) {
sourceMap.put("docId", docId);
}
if (queryId != null) {
sourceMap.put("queryId", queryId);
}
if (userInfoId != null) {
sourceMap.put("userInfoId", userInfoId);
}
@ -87,6 +99,8 @@ public class BsFavoriteLog extends EsAbstractEntity {
StringBuilder sb = new StringBuilder();
sb.append(dm).append(createdAt);
sb.append(dm).append(url);
sb.append(dm).append(docId);
sb.append(dm).append(queryId);
sb.append(dm).append(userInfoId);
if (sb.length() > dm.length()) {
sb.delete(0, dm.length());
@ -118,6 +132,26 @@ public class BsFavoriteLog extends EsAbstractEntity {
this.url = value;
}
public String getDocId() {
checkSpecifiedProperty("docId");
return convertEmptyToNull(docId);
}
public void setDocId(String value) {
registerModifiedProperty("docId");
this.docId = value;
}
public String getQueryId() {
checkSpecifiedProperty("queryId");
return convertEmptyToNull(queryId);
}
public void setQueryId(String value) {
registerModifiedProperty("queryId");
this.queryId = value;
}
public String getUserInfoId() {
checkSpecifiedProperty("userInfoId");
return convertEmptyToNull(userInfoId);

View file

@ -43,6 +43,9 @@ public class BsSearchLog extends EsAbstractEntity {
/** user */
protected String user;
/** queryId */
protected String queryId;
/** clientIp */
protected String clientIp;
@ -106,6 +109,9 @@ public class BsSearchLog extends EsAbstractEntity {
if (user != null) {
sourceMap.put("user", user);
}
if (queryId != null) {
sourceMap.put("queryId", queryId);
}
if (clientIp != null) {
sourceMap.put("clientIp", clientIp);
}
@ -153,6 +159,7 @@ public class BsSearchLog extends EsAbstractEntity {
StringBuilder sb = new StringBuilder();
sb.append(dm).append(accessType);
sb.append(dm).append(user);
sb.append(dm).append(queryId);
sb.append(dm).append(clientIp);
sb.append(dm).append(hitCount);
sb.append(dm).append(queryOffset);
@ -195,6 +202,16 @@ public class BsSearchLog extends EsAbstractEntity {
this.user = value;
}
public String getQueryId() {
checkSpecifiedProperty("queryId");
return convertEmptyToNull(queryId);
}
public void setQueryId(String value) {
registerModifiedProperty("queryId");
this.queryId = value;
}
public String getClientIp() {
checkSpecifiedProperty("clientIp");
return convertEmptyToNull(clientIp);

View file

@ -79,11 +79,16 @@ public class ClickLogDbm extends AbstractDBMeta {
// ---------------
protected final Map<String, PropertyGateway> _epgMap = newHashMap();
{
setupEpg(_epgMap, et -> ((ClickLog) et).getQueryRequestedAt(),
(et, vl) -> ((ClickLog) et).setQueryRequestedAt(DfTypeUtil.toLocalDateTime(vl)), "queryRequestedAt");
setupEpg(_epgMap, et -> ((ClickLog) et).getRequestedAt(),
(et, vl) -> ((ClickLog) et).setRequestedAt(DfTypeUtil.toLocalDateTime(vl)), "requestedAt");
setupEpg(_epgMap, et -> ((ClickLog) et).getSearchLogId(), (et, vl) -> ((ClickLog) et).setSearchLogId(DfTypeUtil.toString(vl)),
"searchLogId");
setupEpg(_epgMap, et -> ((ClickLog) et).getQueryId(), (et, vl) -> ((ClickLog) et).setQueryId(DfTypeUtil.toString(vl)), "queryId");
setupEpg(_epgMap, et -> ((ClickLog) et).getDocId(), (et, vl) -> ((ClickLog) et).setDocId(DfTypeUtil.toString(vl)), "docId");
setupEpg(_epgMap, et -> ((ClickLog) et).getUserSessionId(), (et, vl) -> ((ClickLog) et).setUserSessionId(DfTypeUtil.toString(vl)),
"userSessionId");
setupEpg(_epgMap, et -> ((ClickLog) et).getUrl(), (et, vl) -> ((ClickLog) et).setUrl(DfTypeUtil.toString(vl)), "url");
setupEpg(_epgMap, et -> ((ClickLog) et).getOrder(), (et, vl) -> ((ClickLog) et).setOrder(DfTypeUtil.toInteger(vl)), "order");
}
@Override
@ -120,30 +125,58 @@ public class ClickLogDbm extends AbstractDBMeta {
// ===================================================================================
// Column Info
// ===========
protected final ColumnInfo _columnQueryRequestedAt = cci("queryRequestedAt", "queryRequestedAt", null, null, LocalDateTime.class,
"queryRequestedAt", null, false, false, false, "LocalDateTime", 0, 0, null, false, null, null, null, null, null, false);
protected final ColumnInfo _columnRequestedAt = cci("requestedAt", "requestedAt", null, null, LocalDateTime.class, "requestedAt", null,
false, false, false, "LocalDateTime", 0, 0, null, false, null, null, null, null, null, false);
protected final ColumnInfo _columnSearchLogId = cci("searchLogId", "searchLogId", null, null, String.class, "searchLogId", null, false,
false, false, "String", 0, 0, null, false, null, null, null, null, null, false);
protected final ColumnInfo _columnQueryId = cci("queryId", "queryId", null, null, String.class, "queryId", null, false, false, false,
"String", 0, 0, null, false, null, null, null, null, null, false);
protected final ColumnInfo _columnDocId = cci("docId", "docId", null, null, String.class, "docId", null, false, false, false, "String",
0, 0, null, false, null, null, null, null, null, false);
protected final ColumnInfo _columnUserSessionId = cci("userSessionId", "userSessionId", null, null, String.class, "userSessionId",
null, false, false, false, "String", 0, 0, null, false, null, null, null, null, null, false);
protected final ColumnInfo _columnUrl = cci("url", "url", null, null, String.class, "url", null, false, false, false, "String", 0, 0,
null, false, null, null, null, null, null, false);
protected final ColumnInfo _columnOrder = cci("order", "order", null, null, Integer.class, "order", null, false, false, false,
"Integer", 0, 0, null, false, null, null, null, null, null, false);
public ColumnInfo columnQueryRequestedAt() {
return _columnQueryRequestedAt;
}
public ColumnInfo columnRequestedAt() {
return _columnRequestedAt;
}
public ColumnInfo columnSearchLogId() {
return _columnSearchLogId;
public ColumnInfo columnQueryId() {
return _columnQueryId;
}
public ColumnInfo columnDocId() {
return _columnDocId;
}
public ColumnInfo columnUserSessionId() {
return _columnUserSessionId;
}
public ColumnInfo columnUrl() {
return _columnUrl;
}
public ColumnInfo columnOrder() {
return _columnOrder;
}
protected List<ColumnInfo> ccil() {
List<ColumnInfo> ls = newArrayList();
ls.add(columnQueryRequestedAt());
ls.add(columnRequestedAt());
ls.add(columnSearchLogId());
ls.add(columnQueryId());
ls.add(columnDocId());
ls.add(columnUserSessionId());
ls.add(columnUrl());
ls.add(columnOrder());
return ls;
}

View file

@ -82,6 +82,9 @@ public class FavoriteLogDbm extends AbstractDBMeta {
setupEpg(_epgMap, et -> ((FavoriteLog) et).getCreatedAt(),
(et, vl) -> ((FavoriteLog) et).setCreatedAt(DfTypeUtil.toLocalDateTime(vl)), "createdAt");
setupEpg(_epgMap, et -> ((FavoriteLog) et).getUrl(), (et, vl) -> ((FavoriteLog) et).setUrl(DfTypeUtil.toString(vl)), "url");
setupEpg(_epgMap, et -> ((FavoriteLog) et).getDocId(), (et, vl) -> ((FavoriteLog) et).setDocId(DfTypeUtil.toString(vl)), "docId");
setupEpg(_epgMap, et -> ((FavoriteLog) et).getQueryId(), (et, vl) -> ((FavoriteLog) et).setQueryId(DfTypeUtil.toString(vl)),
"queryId");
setupEpg(_epgMap, et -> ((FavoriteLog) et).getUserInfoId(), (et, vl) -> ((FavoriteLog) et).setUserInfoId(DfTypeUtil.toString(vl)),
"userInfoId");
}
@ -124,6 +127,10 @@ public class FavoriteLogDbm extends AbstractDBMeta {
false, false, "LocalDateTime", 0, 0, null, false, null, null, null, null, null, false);
protected final ColumnInfo _columnUrl = cci("url", "url", null, null, String.class, "url", null, false, false, false, "String", 0, 0,
null, false, null, null, null, null, null, false);
protected final ColumnInfo _columnDocId = cci("docId", "docId", null, null, String.class, "docId", null, false, false, false, "String",
0, 0, null, false, null, null, null, null, null, false);
protected final ColumnInfo _columnQueryId = cci("queryId", "queryId", null, null, String.class, "queryId", null, false, false, false,
"String", 0, 0, null, false, null, null, null, null, null, false);
protected final ColumnInfo _columnUserInfoId = cci("userInfoId", "userInfoId", null, null, String.class, "userInfoId", null, false,
false, false, "String", 0, 0, null, false, null, null, null, null, null, false);
@ -135,6 +142,14 @@ public class FavoriteLogDbm extends AbstractDBMeta {
return _columnUrl;
}
public ColumnInfo columnDocId() {
return _columnDocId;
}
public ColumnInfo columnQueryId() {
return _columnQueryId;
}
public ColumnInfo columnUserInfoId() {
return _columnUserInfoId;
}
@ -143,6 +158,8 @@ public class FavoriteLogDbm extends AbstractDBMeta {
List<ColumnInfo> ls = newArrayList();
ls.add(columnCreatedAt());
ls.add(columnUrl());
ls.add(columnDocId());
ls.add(columnQueryId());
ls.add(columnUserInfoId());
return ls;
}

View file

@ -82,6 +82,7 @@ public class SearchLogDbm extends AbstractDBMeta {
setupEpg(_epgMap, et -> ((SearchLog) et).getAccessType(), (et, vl) -> ((SearchLog) et).setAccessType(DfTypeUtil.toString(vl)),
"accessType");
setupEpg(_epgMap, et -> ((SearchLog) et).getUser(), (et, vl) -> ((SearchLog) et).setUser(DfTypeUtil.toString(vl)), "user");
setupEpg(_epgMap, et -> ((SearchLog) et).getQueryId(), (et, vl) -> ((SearchLog) et).setQueryId(DfTypeUtil.toString(vl)), "queryId");
setupEpg(_epgMap, et -> ((SearchLog) et).getClientIp(), (et, vl) -> ((SearchLog) et).setClientIp(DfTypeUtil.toString(vl)),
"clientIp");
setupEpg(_epgMap, et -> ((SearchLog) et).getHitCount(), (et, vl) -> ((SearchLog) et).setHitCount(DfTypeUtil.toLong(vl)), "hitCount");
@ -144,6 +145,8 @@ public class SearchLogDbm extends AbstractDBMeta {
false, false, "String", 0, 0, null, false, null, null, null, null, null, false);
protected final ColumnInfo _columnUser = cci("user", "user", null, null, String.class, "user", null, false, false, false, "String", 0,
0, null, false, null, null, null, null, null, false);
protected final ColumnInfo _columnQueryId = cci("queryId", "queryId", null, null, String.class, "queryId", null, false, false, false,
"String", 0, 0, null, false, null, null, null, null, null, false);
protected final ColumnInfo _columnClientIp = cci("clientIp", "clientIp", null, null, String.class, "clientIp", null, false, false,
false, "String", 0, 0, null, false, null, null, null, null, null, false);
protected final ColumnInfo _columnHitCount = cci("hitCount", "hitCount", null, null, Long.class, "hitCount", null, false, false, false,
@ -177,6 +180,10 @@ public class SearchLogDbm extends AbstractDBMeta {
return _columnUser;
}
public ColumnInfo columnQueryId() {
return _columnQueryId;
}
public ColumnInfo columnClientIp() {
return _columnClientIp;
}
@ -229,6 +236,7 @@ public class SearchLogDbm extends AbstractDBMeta {
List<ColumnInfo> ls = newArrayList();
ls.add(columnAccessType());
ls.add(columnUser());
ls.add(columnQueryId());
ls.add(columnClientIp());
ls.add(columnHitCount());
ls.add(columnQueryOffset());

View file

@ -158,16 +158,32 @@ public class BsClickLogCB extends EsAbstractConditionBean {
doColumn("_id");
}
public void columnQueryRequestedAt() {
doColumn("queryRequestedAt");
}
public void columnRequestedAt() {
doColumn("requestedAt");
}
public void columnSearchLogId() {
doColumn("searchLogId");
public void columnQueryId() {
doColumn("queryId");
}
public void columnDocId() {
doColumn("docId");
}
public void columnUserSessionId() {
doColumn("userSessionId");
}
public void columnUrl() {
doColumn("url");
}
public void columnOrder() {
doColumn("order");
}
}
}

View file

@ -166,6 +166,14 @@ public class BsFavoriteLogCB extends EsAbstractConditionBean {
doColumn("url");
}
public void columnDocId() {
doColumn("docId");
}
public void columnQueryId() {
doColumn("queryId");
}
public void columnUserInfoId() {
doColumn("userInfoId");
}

View file

@ -166,6 +166,10 @@ public class BsSearchLogCB extends EsAbstractConditionBean {
doColumn("user");
}
public void columnQueryId() {
doColumn("queryId");
}
public void columnClientIp() {
doColumn("clientIp");
}

View file

@ -175,6 +175,161 @@ public abstract class BsClickLogCQ extends EsAbstractConditionQuery {
return this;
}
public void setQueryRequestedAt_Equal(LocalDateTime queryRequestedAt) {
setQueryRequestedAt_Term(queryRequestedAt, null);
}
public void setQueryRequestedAt_Equal(LocalDateTime queryRequestedAt, ConditionOptionCall<TermQueryBuilder> opLambda) {
setQueryRequestedAt_Term(queryRequestedAt, opLambda);
}
public void setQueryRequestedAt_Term(LocalDateTime queryRequestedAt) {
setQueryRequestedAt_Term(queryRequestedAt, null);
}
public void setQueryRequestedAt_Term(LocalDateTime queryRequestedAt, ConditionOptionCall<TermQueryBuilder> opLambda) {
TermQueryBuilder builder = regTermQ("queryRequestedAt", queryRequestedAt);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setQueryRequestedAt_NotEqual(LocalDateTime queryRequestedAt) {
setQueryRequestedAt_NotTerm(queryRequestedAt, null);
}
public void setQueryRequestedAt_NotEqual(LocalDateTime queryRequestedAt, ConditionOptionCall<NotQueryBuilder> opLambda) {
setQueryRequestedAt_NotTerm(queryRequestedAt, opLambda);
}
public void setQueryRequestedAt_NotTerm(LocalDateTime queryRequestedAt) {
setQueryRequestedAt_NotTerm(queryRequestedAt, null);
}
public void setQueryRequestedAt_NotTerm(LocalDateTime queryRequestedAt, ConditionOptionCall<NotQueryBuilder> opLambda) {
NotQueryBuilder builder = QueryBuilders.notQuery(regTermQ("queryRequestedAt", queryRequestedAt));
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setQueryRequestedAt_Terms(Collection<LocalDateTime> queryRequestedAtList) {
setQueryRequestedAt_Terms(queryRequestedAtList, null);
}
public void setQueryRequestedAt_Terms(Collection<LocalDateTime> queryRequestedAtList, ConditionOptionCall<TermsQueryBuilder> opLambda) {
TermsQueryBuilder builder = regTermsQ("queryRequestedAt", queryRequestedAtList);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setQueryRequestedAt_InScope(Collection<LocalDateTime> queryRequestedAtList) {
setQueryRequestedAt_Terms(queryRequestedAtList, null);
}
public void setQueryRequestedAt_InScope(Collection<LocalDateTime> queryRequestedAtList, ConditionOptionCall<TermsQueryBuilder> opLambda) {
setQueryRequestedAt_Terms(queryRequestedAtList, opLambda);
}
public void setQueryRequestedAt_Match(LocalDateTime queryRequestedAt) {
setQueryRequestedAt_Match(queryRequestedAt, null);
}
public void setQueryRequestedAt_Match(LocalDateTime queryRequestedAt, ConditionOptionCall<MatchQueryBuilder> opLambda) {
MatchQueryBuilder builder = regMatchQ("queryRequestedAt", queryRequestedAt);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setQueryRequestedAt_MatchPhrase(LocalDateTime queryRequestedAt) {
setQueryRequestedAt_MatchPhrase(queryRequestedAt, null);
}
public void setQueryRequestedAt_MatchPhrase(LocalDateTime queryRequestedAt, ConditionOptionCall<MatchQueryBuilder> opLambda) {
MatchQueryBuilder builder = regMatchPhraseQ("queryRequestedAt", queryRequestedAt);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setQueryRequestedAt_MatchPhrasePrefix(LocalDateTime queryRequestedAt) {
setQueryRequestedAt_MatchPhrasePrefix(queryRequestedAt, null);
}
public void setQueryRequestedAt_MatchPhrasePrefix(LocalDateTime queryRequestedAt, ConditionOptionCall<MatchQueryBuilder> opLambda) {
MatchQueryBuilder builder = regMatchPhrasePrefixQ("queryRequestedAt", queryRequestedAt);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setQueryRequestedAt_Fuzzy(LocalDateTime queryRequestedAt) {
setQueryRequestedAt_Fuzzy(queryRequestedAt, null);
}
public void setQueryRequestedAt_Fuzzy(LocalDateTime queryRequestedAt, ConditionOptionCall<FuzzyQueryBuilder> opLambda) {
FuzzyQueryBuilder builder = regFuzzyQ("queryRequestedAt", queryRequestedAt);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setQueryRequestedAt_GreaterThan(LocalDateTime queryRequestedAt) {
setQueryRequestedAt_GreaterThan(queryRequestedAt, null);
}
public void setQueryRequestedAt_GreaterThan(LocalDateTime queryRequestedAt, ConditionOptionCall<RangeQueryBuilder> opLambda) {
RangeQueryBuilder builder = regRangeQ("queryRequestedAt", ConditionKey.CK_GREATER_THAN, queryRequestedAt);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setQueryRequestedAt_LessThan(LocalDateTime queryRequestedAt) {
setQueryRequestedAt_LessThan(queryRequestedAt, null);
}
public void setQueryRequestedAt_LessThan(LocalDateTime queryRequestedAt, ConditionOptionCall<RangeQueryBuilder> opLambda) {
RangeQueryBuilder builder = regRangeQ("queryRequestedAt", ConditionKey.CK_LESS_THAN, queryRequestedAt);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setQueryRequestedAt_GreaterEqual(LocalDateTime queryRequestedAt) {
setQueryRequestedAt_GreaterEqual(queryRequestedAt, null);
}
public void setQueryRequestedAt_GreaterEqual(LocalDateTime queryRequestedAt, ConditionOptionCall<RangeQueryBuilder> opLambda) {
RangeQueryBuilder builder = regRangeQ("queryRequestedAt", ConditionKey.CK_GREATER_EQUAL, queryRequestedAt);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setQueryRequestedAt_LessEqual(LocalDateTime queryRequestedAt) {
setQueryRequestedAt_LessEqual(queryRequestedAt, null);
}
public void setQueryRequestedAt_LessEqual(LocalDateTime queryRequestedAt, ConditionOptionCall<RangeQueryBuilder> opLambda) {
RangeQueryBuilder builder = regRangeQ("queryRequestedAt", ConditionKey.CK_LESS_EQUAL, queryRequestedAt);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public BsClickLogCQ addOrderBy_QueryRequestedAt_Asc() {
regOBA("queryRequestedAt");
return this;
}
public BsClickLogCQ addOrderBy_QueryRequestedAt_Desc() {
regOBD("queryRequestedAt");
return this;
}
public void setRequestedAt_Equal(LocalDateTime requestedAt) {
setRequestedAt_Term(requestedAt, null);
}
@ -330,169 +485,501 @@ public abstract class BsClickLogCQ extends EsAbstractConditionQuery {
return this;
}
public void setSearchLogId_Equal(String searchLogId) {
setSearchLogId_Term(searchLogId, null);
public void setQueryId_Equal(String queryId) {
setQueryId_Term(queryId, null);
}
public void setSearchLogId_Equal(String searchLogId, ConditionOptionCall<TermQueryBuilder> opLambda) {
setSearchLogId_Term(searchLogId, opLambda);
public void setQueryId_Equal(String queryId, ConditionOptionCall<TermQueryBuilder> opLambda) {
setQueryId_Term(queryId, opLambda);
}
public void setSearchLogId_Term(String searchLogId) {
setSearchLogId_Term(searchLogId, null);
public void setQueryId_Term(String queryId) {
setQueryId_Term(queryId, null);
}
public void setSearchLogId_Term(String searchLogId, ConditionOptionCall<TermQueryBuilder> opLambda) {
TermQueryBuilder builder = regTermQ("searchLogId", searchLogId);
public void setQueryId_Term(String queryId, ConditionOptionCall<TermQueryBuilder> opLambda) {
TermQueryBuilder builder = regTermQ("queryId", queryId);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setSearchLogId_NotEqual(String searchLogId) {
setSearchLogId_NotTerm(searchLogId, null);
public void setQueryId_NotEqual(String queryId) {
setQueryId_NotTerm(queryId, null);
}
public void setSearchLogId_NotEqual(String searchLogId, ConditionOptionCall<NotQueryBuilder> opLambda) {
setSearchLogId_NotTerm(searchLogId, opLambda);
public void setQueryId_NotEqual(String queryId, ConditionOptionCall<NotQueryBuilder> opLambda) {
setQueryId_NotTerm(queryId, opLambda);
}
public void setSearchLogId_NotTerm(String searchLogId) {
setSearchLogId_NotTerm(searchLogId, null);
public void setQueryId_NotTerm(String queryId) {
setQueryId_NotTerm(queryId, null);
}
public void setSearchLogId_NotTerm(String searchLogId, ConditionOptionCall<NotQueryBuilder> opLambda) {
NotQueryBuilder builder = QueryBuilders.notQuery(regTermQ("searchLogId", searchLogId));
public void setQueryId_NotTerm(String queryId, ConditionOptionCall<NotQueryBuilder> opLambda) {
NotQueryBuilder builder = QueryBuilders.notQuery(regTermQ("queryId", queryId));
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setSearchLogId_Terms(Collection<String> searchLogIdList) {
setSearchLogId_Terms(searchLogIdList, null);
public void setQueryId_Terms(Collection<String> queryIdList) {
setQueryId_Terms(queryIdList, null);
}
public void setSearchLogId_Terms(Collection<String> searchLogIdList, ConditionOptionCall<TermsQueryBuilder> opLambda) {
TermsQueryBuilder builder = regTermsQ("searchLogId", searchLogIdList);
public void setQueryId_Terms(Collection<String> queryIdList, ConditionOptionCall<TermsQueryBuilder> opLambda) {
TermsQueryBuilder builder = regTermsQ("queryId", queryIdList);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setSearchLogId_InScope(Collection<String> searchLogIdList) {
setSearchLogId_Terms(searchLogIdList, null);
public void setQueryId_InScope(Collection<String> queryIdList) {
setQueryId_Terms(queryIdList, null);
}
public void setSearchLogId_InScope(Collection<String> searchLogIdList, ConditionOptionCall<TermsQueryBuilder> opLambda) {
setSearchLogId_Terms(searchLogIdList, opLambda);
public void setQueryId_InScope(Collection<String> queryIdList, ConditionOptionCall<TermsQueryBuilder> opLambda) {
setQueryId_Terms(queryIdList, opLambda);
}
public void setSearchLogId_Match(String searchLogId) {
setSearchLogId_Match(searchLogId, null);
public void setQueryId_Match(String queryId) {
setQueryId_Match(queryId, null);
}
public void setSearchLogId_Match(String searchLogId, ConditionOptionCall<MatchQueryBuilder> opLambda) {
MatchQueryBuilder builder = regMatchQ("searchLogId", searchLogId);
public void setQueryId_Match(String queryId, ConditionOptionCall<MatchQueryBuilder> opLambda) {
MatchQueryBuilder builder = regMatchQ("queryId", queryId);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setSearchLogId_MatchPhrase(String searchLogId) {
setSearchLogId_MatchPhrase(searchLogId, null);
public void setQueryId_MatchPhrase(String queryId) {
setQueryId_MatchPhrase(queryId, null);
}
public void setSearchLogId_MatchPhrase(String searchLogId, ConditionOptionCall<MatchQueryBuilder> opLambda) {
MatchQueryBuilder builder = regMatchPhraseQ("searchLogId", searchLogId);
public void setQueryId_MatchPhrase(String queryId, ConditionOptionCall<MatchQueryBuilder> opLambda) {
MatchQueryBuilder builder = regMatchPhraseQ("queryId", queryId);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setSearchLogId_MatchPhrasePrefix(String searchLogId) {
setSearchLogId_MatchPhrasePrefix(searchLogId, null);
public void setQueryId_MatchPhrasePrefix(String queryId) {
setQueryId_MatchPhrasePrefix(queryId, null);
}
public void setSearchLogId_MatchPhrasePrefix(String searchLogId, ConditionOptionCall<MatchQueryBuilder> opLambda) {
MatchQueryBuilder builder = regMatchPhrasePrefixQ("searchLogId", searchLogId);
public void setQueryId_MatchPhrasePrefix(String queryId, ConditionOptionCall<MatchQueryBuilder> opLambda) {
MatchQueryBuilder builder = regMatchPhrasePrefixQ("queryId", queryId);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setSearchLogId_Fuzzy(String searchLogId) {
setSearchLogId_Fuzzy(searchLogId, null);
public void setQueryId_Fuzzy(String queryId) {
setQueryId_Fuzzy(queryId, null);
}
public void setSearchLogId_Fuzzy(String searchLogId, ConditionOptionCall<FuzzyQueryBuilder> opLambda) {
FuzzyQueryBuilder builder = regFuzzyQ("searchLogId", searchLogId);
public void setQueryId_Fuzzy(String queryId, ConditionOptionCall<FuzzyQueryBuilder> opLambda) {
FuzzyQueryBuilder builder = regFuzzyQ("queryId", queryId);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setSearchLogId_Prefix(String searchLogId) {
setSearchLogId_Prefix(searchLogId, null);
public void setQueryId_Prefix(String queryId) {
setQueryId_Prefix(queryId, null);
}
public void setSearchLogId_Prefix(String searchLogId, ConditionOptionCall<PrefixQueryBuilder> opLambda) {
PrefixQueryBuilder builder = regPrefixQ("searchLogId", searchLogId);
public void setQueryId_Prefix(String queryId, ConditionOptionCall<PrefixQueryBuilder> opLambda) {
PrefixQueryBuilder builder = regPrefixQ("queryId", queryId);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setSearchLogId_GreaterThan(String searchLogId) {
setSearchLogId_GreaterThan(searchLogId, null);
public void setQueryId_GreaterThan(String queryId) {
setQueryId_GreaterThan(queryId, null);
}
public void setSearchLogId_GreaterThan(String searchLogId, ConditionOptionCall<RangeQueryBuilder> opLambda) {
RangeQueryBuilder builder = regRangeQ("searchLogId", ConditionKey.CK_GREATER_THAN, searchLogId);
public void setQueryId_GreaterThan(String queryId, ConditionOptionCall<RangeQueryBuilder> opLambda) {
RangeQueryBuilder builder = regRangeQ("queryId", ConditionKey.CK_GREATER_THAN, queryId);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setSearchLogId_LessThan(String searchLogId) {
setSearchLogId_LessThan(searchLogId, null);
public void setQueryId_LessThan(String queryId) {
setQueryId_LessThan(queryId, null);
}
public void setSearchLogId_LessThan(String searchLogId, ConditionOptionCall<RangeQueryBuilder> opLambda) {
RangeQueryBuilder builder = regRangeQ("searchLogId", ConditionKey.CK_LESS_THAN, searchLogId);
public void setQueryId_LessThan(String queryId, ConditionOptionCall<RangeQueryBuilder> opLambda) {
RangeQueryBuilder builder = regRangeQ("queryId", ConditionKey.CK_LESS_THAN, queryId);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setSearchLogId_GreaterEqual(String searchLogId) {
setSearchLogId_GreaterEqual(searchLogId, null);
public void setQueryId_GreaterEqual(String queryId) {
setQueryId_GreaterEqual(queryId, null);
}
public void setSearchLogId_GreaterEqual(String searchLogId, ConditionOptionCall<RangeQueryBuilder> opLambda) {
RangeQueryBuilder builder = regRangeQ("searchLogId", ConditionKey.CK_GREATER_EQUAL, searchLogId);
public void setQueryId_GreaterEqual(String queryId, ConditionOptionCall<RangeQueryBuilder> opLambda) {
RangeQueryBuilder builder = regRangeQ("queryId", ConditionKey.CK_GREATER_EQUAL, queryId);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setSearchLogId_LessEqual(String searchLogId) {
setSearchLogId_LessEqual(searchLogId, null);
public void setQueryId_LessEqual(String queryId) {
setQueryId_LessEqual(queryId, null);
}
public void setSearchLogId_LessEqual(String searchLogId, ConditionOptionCall<RangeQueryBuilder> opLambda) {
RangeQueryBuilder builder = regRangeQ("searchLogId", ConditionKey.CK_LESS_EQUAL, searchLogId);
public void setQueryId_LessEqual(String queryId, ConditionOptionCall<RangeQueryBuilder> opLambda) {
RangeQueryBuilder builder = regRangeQ("queryId", ConditionKey.CK_LESS_EQUAL, queryId);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public BsClickLogCQ addOrderBy_SearchLogId_Asc() {
regOBA("searchLogId");
public BsClickLogCQ addOrderBy_QueryId_Asc() {
regOBA("queryId");
return this;
}
public BsClickLogCQ addOrderBy_SearchLogId_Desc() {
regOBD("searchLogId");
public BsClickLogCQ addOrderBy_QueryId_Desc() {
regOBD("queryId");
return this;
}
public void setDocId_Equal(String docId) {
setDocId_Term(docId, null);
}
public void setDocId_Equal(String docId, ConditionOptionCall<TermQueryBuilder> opLambda) {
setDocId_Term(docId, opLambda);
}
public void setDocId_Term(String docId) {
setDocId_Term(docId, null);
}
public void setDocId_Term(String docId, ConditionOptionCall<TermQueryBuilder> opLambda) {
TermQueryBuilder builder = regTermQ("docId", docId);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setDocId_NotEqual(String docId) {
setDocId_NotTerm(docId, null);
}
public void setDocId_NotEqual(String docId, ConditionOptionCall<NotQueryBuilder> opLambda) {
setDocId_NotTerm(docId, opLambda);
}
public void setDocId_NotTerm(String docId) {
setDocId_NotTerm(docId, null);
}
public void setDocId_NotTerm(String docId, ConditionOptionCall<NotQueryBuilder> opLambda) {
NotQueryBuilder builder = QueryBuilders.notQuery(regTermQ("docId", docId));
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setDocId_Terms(Collection<String> docIdList) {
setDocId_Terms(docIdList, null);
}
public void setDocId_Terms(Collection<String> docIdList, ConditionOptionCall<TermsQueryBuilder> opLambda) {
TermsQueryBuilder builder = regTermsQ("docId", docIdList);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setDocId_InScope(Collection<String> docIdList) {
setDocId_Terms(docIdList, null);
}
public void setDocId_InScope(Collection<String> docIdList, ConditionOptionCall<TermsQueryBuilder> opLambda) {
setDocId_Terms(docIdList, opLambda);
}
public void setDocId_Match(String docId) {
setDocId_Match(docId, null);
}
public void setDocId_Match(String docId, ConditionOptionCall<MatchQueryBuilder> opLambda) {
MatchQueryBuilder builder = regMatchQ("docId", docId);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setDocId_MatchPhrase(String docId) {
setDocId_MatchPhrase(docId, null);
}
public void setDocId_MatchPhrase(String docId, ConditionOptionCall<MatchQueryBuilder> opLambda) {
MatchQueryBuilder builder = regMatchPhraseQ("docId", docId);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setDocId_MatchPhrasePrefix(String docId) {
setDocId_MatchPhrasePrefix(docId, null);
}
public void setDocId_MatchPhrasePrefix(String docId, ConditionOptionCall<MatchQueryBuilder> opLambda) {
MatchQueryBuilder builder = regMatchPhrasePrefixQ("docId", docId);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setDocId_Fuzzy(String docId) {
setDocId_Fuzzy(docId, null);
}
public void setDocId_Fuzzy(String docId, ConditionOptionCall<FuzzyQueryBuilder> opLambda) {
FuzzyQueryBuilder builder = regFuzzyQ("docId", docId);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setDocId_Prefix(String docId) {
setDocId_Prefix(docId, null);
}
public void setDocId_Prefix(String docId, ConditionOptionCall<PrefixQueryBuilder> opLambda) {
PrefixQueryBuilder builder = regPrefixQ("docId", docId);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setDocId_GreaterThan(String docId) {
setDocId_GreaterThan(docId, null);
}
public void setDocId_GreaterThan(String docId, ConditionOptionCall<RangeQueryBuilder> opLambda) {
RangeQueryBuilder builder = regRangeQ("docId", ConditionKey.CK_GREATER_THAN, docId);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setDocId_LessThan(String docId) {
setDocId_LessThan(docId, null);
}
public void setDocId_LessThan(String docId, ConditionOptionCall<RangeQueryBuilder> opLambda) {
RangeQueryBuilder builder = regRangeQ("docId", ConditionKey.CK_LESS_THAN, docId);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setDocId_GreaterEqual(String docId) {
setDocId_GreaterEqual(docId, null);
}
public void setDocId_GreaterEqual(String docId, ConditionOptionCall<RangeQueryBuilder> opLambda) {
RangeQueryBuilder builder = regRangeQ("docId", ConditionKey.CK_GREATER_EQUAL, docId);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setDocId_LessEqual(String docId) {
setDocId_LessEqual(docId, null);
}
public void setDocId_LessEqual(String docId, ConditionOptionCall<RangeQueryBuilder> opLambda) {
RangeQueryBuilder builder = regRangeQ("docId", ConditionKey.CK_LESS_EQUAL, docId);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public BsClickLogCQ addOrderBy_DocId_Asc() {
regOBA("docId");
return this;
}
public BsClickLogCQ addOrderBy_DocId_Desc() {
regOBD("docId");
return this;
}
public void setUserSessionId_Equal(String userSessionId) {
setUserSessionId_Term(userSessionId, null);
}
public void setUserSessionId_Equal(String userSessionId, ConditionOptionCall<TermQueryBuilder> opLambda) {
setUserSessionId_Term(userSessionId, opLambda);
}
public void setUserSessionId_Term(String userSessionId) {
setUserSessionId_Term(userSessionId, null);
}
public void setUserSessionId_Term(String userSessionId, ConditionOptionCall<TermQueryBuilder> opLambda) {
TermQueryBuilder builder = regTermQ("userSessionId", userSessionId);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setUserSessionId_NotEqual(String userSessionId) {
setUserSessionId_NotTerm(userSessionId, null);
}
public void setUserSessionId_NotEqual(String userSessionId, ConditionOptionCall<NotQueryBuilder> opLambda) {
setUserSessionId_NotTerm(userSessionId, opLambda);
}
public void setUserSessionId_NotTerm(String userSessionId) {
setUserSessionId_NotTerm(userSessionId, null);
}
public void setUserSessionId_NotTerm(String userSessionId, ConditionOptionCall<NotQueryBuilder> opLambda) {
NotQueryBuilder builder = QueryBuilders.notQuery(regTermQ("userSessionId", userSessionId));
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setUserSessionId_Terms(Collection<String> userSessionIdList) {
setUserSessionId_Terms(userSessionIdList, null);
}
public void setUserSessionId_Terms(Collection<String> userSessionIdList, ConditionOptionCall<TermsQueryBuilder> opLambda) {
TermsQueryBuilder builder = regTermsQ("userSessionId", userSessionIdList);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setUserSessionId_InScope(Collection<String> userSessionIdList) {
setUserSessionId_Terms(userSessionIdList, null);
}
public void setUserSessionId_InScope(Collection<String> userSessionIdList, ConditionOptionCall<TermsQueryBuilder> opLambda) {
setUserSessionId_Terms(userSessionIdList, opLambda);
}
public void setUserSessionId_Match(String userSessionId) {
setUserSessionId_Match(userSessionId, null);
}
public void setUserSessionId_Match(String userSessionId, ConditionOptionCall<MatchQueryBuilder> opLambda) {
MatchQueryBuilder builder = regMatchQ("userSessionId", userSessionId);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setUserSessionId_MatchPhrase(String userSessionId) {
setUserSessionId_MatchPhrase(userSessionId, null);
}
public void setUserSessionId_MatchPhrase(String userSessionId, ConditionOptionCall<MatchQueryBuilder> opLambda) {
MatchQueryBuilder builder = regMatchPhraseQ("userSessionId", userSessionId);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setUserSessionId_MatchPhrasePrefix(String userSessionId) {
setUserSessionId_MatchPhrasePrefix(userSessionId, null);
}
public void setUserSessionId_MatchPhrasePrefix(String userSessionId, ConditionOptionCall<MatchQueryBuilder> opLambda) {
MatchQueryBuilder builder = regMatchPhrasePrefixQ("userSessionId", userSessionId);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setUserSessionId_Fuzzy(String userSessionId) {
setUserSessionId_Fuzzy(userSessionId, null);
}
public void setUserSessionId_Fuzzy(String userSessionId, ConditionOptionCall<FuzzyQueryBuilder> opLambda) {
FuzzyQueryBuilder builder = regFuzzyQ("userSessionId", userSessionId);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setUserSessionId_Prefix(String userSessionId) {
setUserSessionId_Prefix(userSessionId, null);
}
public void setUserSessionId_Prefix(String userSessionId, ConditionOptionCall<PrefixQueryBuilder> opLambda) {
PrefixQueryBuilder builder = regPrefixQ("userSessionId", userSessionId);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setUserSessionId_GreaterThan(String userSessionId) {
setUserSessionId_GreaterThan(userSessionId, null);
}
public void setUserSessionId_GreaterThan(String userSessionId, ConditionOptionCall<RangeQueryBuilder> opLambda) {
RangeQueryBuilder builder = regRangeQ("userSessionId", ConditionKey.CK_GREATER_THAN, userSessionId);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setUserSessionId_LessThan(String userSessionId) {
setUserSessionId_LessThan(userSessionId, null);
}
public void setUserSessionId_LessThan(String userSessionId, ConditionOptionCall<RangeQueryBuilder> opLambda) {
RangeQueryBuilder builder = regRangeQ("userSessionId", ConditionKey.CK_LESS_THAN, userSessionId);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setUserSessionId_GreaterEqual(String userSessionId) {
setUserSessionId_GreaterEqual(userSessionId, null);
}
public void setUserSessionId_GreaterEqual(String userSessionId, ConditionOptionCall<RangeQueryBuilder> opLambda) {
RangeQueryBuilder builder = regRangeQ("userSessionId", ConditionKey.CK_GREATER_EQUAL, userSessionId);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setUserSessionId_LessEqual(String userSessionId) {
setUserSessionId_LessEqual(userSessionId, null);
}
public void setUserSessionId_LessEqual(String userSessionId, ConditionOptionCall<RangeQueryBuilder> opLambda) {
RangeQueryBuilder builder = regRangeQ("userSessionId", ConditionKey.CK_LESS_EQUAL, userSessionId);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public BsClickLogCQ addOrderBy_UserSessionId_Asc() {
regOBA("userSessionId");
return this;
}
public BsClickLogCQ addOrderBy_UserSessionId_Desc() {
regOBD("userSessionId");
return this;
}
@ -662,4 +1149,159 @@ public abstract class BsClickLogCQ extends EsAbstractConditionQuery {
return this;
}
public void setOrder_Equal(Integer order) {
setOrder_Term(order, null);
}
public void setOrder_Equal(Integer order, ConditionOptionCall<TermQueryBuilder> opLambda) {
setOrder_Term(order, opLambda);
}
public void setOrder_Term(Integer order) {
setOrder_Term(order, null);
}
public void setOrder_Term(Integer order, ConditionOptionCall<TermQueryBuilder> opLambda) {
TermQueryBuilder builder = regTermQ("order", order);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setOrder_NotEqual(Integer order) {
setOrder_NotTerm(order, null);
}
public void setOrder_NotEqual(Integer order, ConditionOptionCall<NotQueryBuilder> opLambda) {
setOrder_NotTerm(order, opLambda);
}
public void setOrder_NotTerm(Integer order) {
setOrder_NotTerm(order, null);
}
public void setOrder_NotTerm(Integer order, ConditionOptionCall<NotQueryBuilder> opLambda) {
NotQueryBuilder builder = QueryBuilders.notQuery(regTermQ("order", order));
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setOrder_Terms(Collection<Integer> orderList) {
setOrder_Terms(orderList, null);
}
public void setOrder_Terms(Collection<Integer> orderList, ConditionOptionCall<TermsQueryBuilder> opLambda) {
TermsQueryBuilder builder = regTermsQ("order", orderList);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setOrder_InScope(Collection<Integer> orderList) {
setOrder_Terms(orderList, null);
}
public void setOrder_InScope(Collection<Integer> orderList, ConditionOptionCall<TermsQueryBuilder> opLambda) {
setOrder_Terms(orderList, opLambda);
}
public void setOrder_Match(Integer order) {
setOrder_Match(order, null);
}
public void setOrder_Match(Integer order, ConditionOptionCall<MatchQueryBuilder> opLambda) {
MatchQueryBuilder builder = regMatchQ("order", order);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setOrder_MatchPhrase(Integer order) {
setOrder_MatchPhrase(order, null);
}
public void setOrder_MatchPhrase(Integer order, ConditionOptionCall<MatchQueryBuilder> opLambda) {
MatchQueryBuilder builder = regMatchPhraseQ("order", order);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setOrder_MatchPhrasePrefix(Integer order) {
setOrder_MatchPhrasePrefix(order, null);
}
public void setOrder_MatchPhrasePrefix(Integer order, ConditionOptionCall<MatchQueryBuilder> opLambda) {
MatchQueryBuilder builder = regMatchPhrasePrefixQ("order", order);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setOrder_Fuzzy(Integer order) {
setOrder_Fuzzy(order, null);
}
public void setOrder_Fuzzy(Integer order, ConditionOptionCall<FuzzyQueryBuilder> opLambda) {
FuzzyQueryBuilder builder = regFuzzyQ("order", order);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setOrder_GreaterThan(Integer order) {
setOrder_GreaterThan(order, null);
}
public void setOrder_GreaterThan(Integer order, ConditionOptionCall<RangeQueryBuilder> opLambda) {
RangeQueryBuilder builder = regRangeQ("order", ConditionKey.CK_GREATER_THAN, order);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setOrder_LessThan(Integer order) {
setOrder_LessThan(order, null);
}
public void setOrder_LessThan(Integer order, ConditionOptionCall<RangeQueryBuilder> opLambda) {
RangeQueryBuilder builder = regRangeQ("order", ConditionKey.CK_LESS_THAN, order);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setOrder_GreaterEqual(Integer order) {
setOrder_GreaterEqual(order, null);
}
public void setOrder_GreaterEqual(Integer order, ConditionOptionCall<RangeQueryBuilder> opLambda) {
RangeQueryBuilder builder = regRangeQ("order", ConditionKey.CK_GREATER_EQUAL, order);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setOrder_LessEqual(Integer order) {
setOrder_LessEqual(order, null);
}
public void setOrder_LessEqual(Integer order, ConditionOptionCall<RangeQueryBuilder> opLambda) {
RangeQueryBuilder builder = regRangeQ("order", ConditionKey.CK_LESS_EQUAL, order);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public BsClickLogCQ addOrderBy_Order_Asc() {
regOBA("order");
return this;
}
public BsClickLogCQ addOrderBy_Order_Desc() {
regOBD("order");
return this;
}
}

View file

@ -496,6 +496,338 @@ public abstract class BsFavoriteLogCQ extends EsAbstractConditionQuery {
return this;
}
public void setDocId_Equal(String docId) {
setDocId_Term(docId, null);
}
public void setDocId_Equal(String docId, ConditionOptionCall<TermQueryBuilder> opLambda) {
setDocId_Term(docId, opLambda);
}
public void setDocId_Term(String docId) {
setDocId_Term(docId, null);
}
public void setDocId_Term(String docId, ConditionOptionCall<TermQueryBuilder> opLambda) {
TermQueryBuilder builder = regTermQ("docId", docId);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setDocId_NotEqual(String docId) {
setDocId_NotTerm(docId, null);
}
public void setDocId_NotEqual(String docId, ConditionOptionCall<NotQueryBuilder> opLambda) {
setDocId_NotTerm(docId, opLambda);
}
public void setDocId_NotTerm(String docId) {
setDocId_NotTerm(docId, null);
}
public void setDocId_NotTerm(String docId, ConditionOptionCall<NotQueryBuilder> opLambda) {
NotQueryBuilder builder = QueryBuilders.notQuery(regTermQ("docId", docId));
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setDocId_Terms(Collection<String> docIdList) {
setDocId_Terms(docIdList, null);
}
public void setDocId_Terms(Collection<String> docIdList, ConditionOptionCall<TermsQueryBuilder> opLambda) {
TermsQueryBuilder builder = regTermsQ("docId", docIdList);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setDocId_InScope(Collection<String> docIdList) {
setDocId_Terms(docIdList, null);
}
public void setDocId_InScope(Collection<String> docIdList, ConditionOptionCall<TermsQueryBuilder> opLambda) {
setDocId_Terms(docIdList, opLambda);
}
public void setDocId_Match(String docId) {
setDocId_Match(docId, null);
}
public void setDocId_Match(String docId, ConditionOptionCall<MatchQueryBuilder> opLambda) {
MatchQueryBuilder builder = regMatchQ("docId", docId);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setDocId_MatchPhrase(String docId) {
setDocId_MatchPhrase(docId, null);
}
public void setDocId_MatchPhrase(String docId, ConditionOptionCall<MatchQueryBuilder> opLambda) {
MatchQueryBuilder builder = regMatchPhraseQ("docId", docId);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setDocId_MatchPhrasePrefix(String docId) {
setDocId_MatchPhrasePrefix(docId, null);
}
public void setDocId_MatchPhrasePrefix(String docId, ConditionOptionCall<MatchQueryBuilder> opLambda) {
MatchQueryBuilder builder = regMatchPhrasePrefixQ("docId", docId);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setDocId_Fuzzy(String docId) {
setDocId_Fuzzy(docId, null);
}
public void setDocId_Fuzzy(String docId, ConditionOptionCall<FuzzyQueryBuilder> opLambda) {
FuzzyQueryBuilder builder = regFuzzyQ("docId", docId);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setDocId_Prefix(String docId) {
setDocId_Prefix(docId, null);
}
public void setDocId_Prefix(String docId, ConditionOptionCall<PrefixQueryBuilder> opLambda) {
PrefixQueryBuilder builder = regPrefixQ("docId", docId);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setDocId_GreaterThan(String docId) {
setDocId_GreaterThan(docId, null);
}
public void setDocId_GreaterThan(String docId, ConditionOptionCall<RangeQueryBuilder> opLambda) {
RangeQueryBuilder builder = regRangeQ("docId", ConditionKey.CK_GREATER_THAN, docId);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setDocId_LessThan(String docId) {
setDocId_LessThan(docId, null);
}
public void setDocId_LessThan(String docId, ConditionOptionCall<RangeQueryBuilder> opLambda) {
RangeQueryBuilder builder = regRangeQ("docId", ConditionKey.CK_LESS_THAN, docId);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setDocId_GreaterEqual(String docId) {
setDocId_GreaterEqual(docId, null);
}
public void setDocId_GreaterEqual(String docId, ConditionOptionCall<RangeQueryBuilder> opLambda) {
RangeQueryBuilder builder = regRangeQ("docId", ConditionKey.CK_GREATER_EQUAL, docId);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setDocId_LessEqual(String docId) {
setDocId_LessEqual(docId, null);
}
public void setDocId_LessEqual(String docId, ConditionOptionCall<RangeQueryBuilder> opLambda) {
RangeQueryBuilder builder = regRangeQ("docId", ConditionKey.CK_LESS_EQUAL, docId);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public BsFavoriteLogCQ addOrderBy_DocId_Asc() {
regOBA("docId");
return this;
}
public BsFavoriteLogCQ addOrderBy_DocId_Desc() {
regOBD("docId");
return this;
}
public void setQueryId_Equal(String queryId) {
setQueryId_Term(queryId, null);
}
public void setQueryId_Equal(String queryId, ConditionOptionCall<TermQueryBuilder> opLambda) {
setQueryId_Term(queryId, opLambda);
}
public void setQueryId_Term(String queryId) {
setQueryId_Term(queryId, null);
}
public void setQueryId_Term(String queryId, ConditionOptionCall<TermQueryBuilder> opLambda) {
TermQueryBuilder builder = regTermQ("queryId", queryId);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setQueryId_NotEqual(String queryId) {
setQueryId_NotTerm(queryId, null);
}
public void setQueryId_NotEqual(String queryId, ConditionOptionCall<NotQueryBuilder> opLambda) {
setQueryId_NotTerm(queryId, opLambda);
}
public void setQueryId_NotTerm(String queryId) {
setQueryId_NotTerm(queryId, null);
}
public void setQueryId_NotTerm(String queryId, ConditionOptionCall<NotQueryBuilder> opLambda) {
NotQueryBuilder builder = QueryBuilders.notQuery(regTermQ("queryId", queryId));
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setQueryId_Terms(Collection<String> queryIdList) {
setQueryId_Terms(queryIdList, null);
}
public void setQueryId_Terms(Collection<String> queryIdList, ConditionOptionCall<TermsQueryBuilder> opLambda) {
TermsQueryBuilder builder = regTermsQ("queryId", queryIdList);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setQueryId_InScope(Collection<String> queryIdList) {
setQueryId_Terms(queryIdList, null);
}
public void setQueryId_InScope(Collection<String> queryIdList, ConditionOptionCall<TermsQueryBuilder> opLambda) {
setQueryId_Terms(queryIdList, opLambda);
}
public void setQueryId_Match(String queryId) {
setQueryId_Match(queryId, null);
}
public void setQueryId_Match(String queryId, ConditionOptionCall<MatchQueryBuilder> opLambda) {
MatchQueryBuilder builder = regMatchQ("queryId", queryId);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setQueryId_MatchPhrase(String queryId) {
setQueryId_MatchPhrase(queryId, null);
}
public void setQueryId_MatchPhrase(String queryId, ConditionOptionCall<MatchQueryBuilder> opLambda) {
MatchQueryBuilder builder = regMatchPhraseQ("queryId", queryId);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setQueryId_MatchPhrasePrefix(String queryId) {
setQueryId_MatchPhrasePrefix(queryId, null);
}
public void setQueryId_MatchPhrasePrefix(String queryId, ConditionOptionCall<MatchQueryBuilder> opLambda) {
MatchQueryBuilder builder = regMatchPhrasePrefixQ("queryId", queryId);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setQueryId_Fuzzy(String queryId) {
setQueryId_Fuzzy(queryId, null);
}
public void setQueryId_Fuzzy(String queryId, ConditionOptionCall<FuzzyQueryBuilder> opLambda) {
FuzzyQueryBuilder builder = regFuzzyQ("queryId", queryId);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setQueryId_Prefix(String queryId) {
setQueryId_Prefix(queryId, null);
}
public void setQueryId_Prefix(String queryId, ConditionOptionCall<PrefixQueryBuilder> opLambda) {
PrefixQueryBuilder builder = regPrefixQ("queryId", queryId);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setQueryId_GreaterThan(String queryId) {
setQueryId_GreaterThan(queryId, null);
}
public void setQueryId_GreaterThan(String queryId, ConditionOptionCall<RangeQueryBuilder> opLambda) {
RangeQueryBuilder builder = regRangeQ("queryId", ConditionKey.CK_GREATER_THAN, queryId);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setQueryId_LessThan(String queryId) {
setQueryId_LessThan(queryId, null);
}
public void setQueryId_LessThan(String queryId, ConditionOptionCall<RangeQueryBuilder> opLambda) {
RangeQueryBuilder builder = regRangeQ("queryId", ConditionKey.CK_LESS_THAN, queryId);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setQueryId_GreaterEqual(String queryId) {
setQueryId_GreaterEqual(queryId, null);
}
public void setQueryId_GreaterEqual(String queryId, ConditionOptionCall<RangeQueryBuilder> opLambda) {
RangeQueryBuilder builder = regRangeQ("queryId", ConditionKey.CK_GREATER_EQUAL, queryId);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setQueryId_LessEqual(String queryId) {
setQueryId_LessEqual(queryId, null);
}
public void setQueryId_LessEqual(String queryId, ConditionOptionCall<RangeQueryBuilder> opLambda) {
RangeQueryBuilder builder = regRangeQ("queryId", ConditionKey.CK_LESS_EQUAL, queryId);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public BsFavoriteLogCQ addOrderBy_QueryId_Asc() {
regOBA("queryId");
return this;
}
public BsFavoriteLogCQ addOrderBy_QueryId_Desc() {
regOBD("queryId");
return this;
}
public void setUserInfoId_Equal(String userInfoId) {
setUserInfoId_Term(userInfoId, null);
}

View file

@ -507,6 +507,172 @@ public abstract class BsSearchLogCQ extends EsAbstractConditionQuery {
return this;
}
public void setQueryId_Equal(String queryId) {
setQueryId_Term(queryId, null);
}
public void setQueryId_Equal(String queryId, ConditionOptionCall<TermQueryBuilder> opLambda) {
setQueryId_Term(queryId, opLambda);
}
public void setQueryId_Term(String queryId) {
setQueryId_Term(queryId, null);
}
public void setQueryId_Term(String queryId, ConditionOptionCall<TermQueryBuilder> opLambda) {
TermQueryBuilder builder = regTermQ("queryId", queryId);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setQueryId_NotEqual(String queryId) {
setQueryId_NotTerm(queryId, null);
}
public void setQueryId_NotEqual(String queryId, ConditionOptionCall<NotQueryBuilder> opLambda) {
setQueryId_NotTerm(queryId, opLambda);
}
public void setQueryId_NotTerm(String queryId) {
setQueryId_NotTerm(queryId, null);
}
public void setQueryId_NotTerm(String queryId, ConditionOptionCall<NotQueryBuilder> opLambda) {
NotQueryBuilder builder = QueryBuilders.notQuery(regTermQ("queryId", queryId));
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setQueryId_Terms(Collection<String> queryIdList) {
setQueryId_Terms(queryIdList, null);
}
public void setQueryId_Terms(Collection<String> queryIdList, ConditionOptionCall<TermsQueryBuilder> opLambda) {
TermsQueryBuilder builder = regTermsQ("queryId", queryIdList);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setQueryId_InScope(Collection<String> queryIdList) {
setQueryId_Terms(queryIdList, null);
}
public void setQueryId_InScope(Collection<String> queryIdList, ConditionOptionCall<TermsQueryBuilder> opLambda) {
setQueryId_Terms(queryIdList, opLambda);
}
public void setQueryId_Match(String queryId) {
setQueryId_Match(queryId, null);
}
public void setQueryId_Match(String queryId, ConditionOptionCall<MatchQueryBuilder> opLambda) {
MatchQueryBuilder builder = regMatchQ("queryId", queryId);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setQueryId_MatchPhrase(String queryId) {
setQueryId_MatchPhrase(queryId, null);
}
public void setQueryId_MatchPhrase(String queryId, ConditionOptionCall<MatchQueryBuilder> opLambda) {
MatchQueryBuilder builder = regMatchPhraseQ("queryId", queryId);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setQueryId_MatchPhrasePrefix(String queryId) {
setQueryId_MatchPhrasePrefix(queryId, null);
}
public void setQueryId_MatchPhrasePrefix(String queryId, ConditionOptionCall<MatchQueryBuilder> opLambda) {
MatchQueryBuilder builder = regMatchPhrasePrefixQ("queryId", queryId);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setQueryId_Fuzzy(String queryId) {
setQueryId_Fuzzy(queryId, null);
}
public void setQueryId_Fuzzy(String queryId, ConditionOptionCall<FuzzyQueryBuilder> opLambda) {
FuzzyQueryBuilder builder = regFuzzyQ("queryId", queryId);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setQueryId_Prefix(String queryId) {
setQueryId_Prefix(queryId, null);
}
public void setQueryId_Prefix(String queryId, ConditionOptionCall<PrefixQueryBuilder> opLambda) {
PrefixQueryBuilder builder = regPrefixQ("queryId", queryId);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setQueryId_GreaterThan(String queryId) {
setQueryId_GreaterThan(queryId, null);
}
public void setQueryId_GreaterThan(String queryId, ConditionOptionCall<RangeQueryBuilder> opLambda) {
RangeQueryBuilder builder = regRangeQ("queryId", ConditionKey.CK_GREATER_THAN, queryId);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setQueryId_LessThan(String queryId) {
setQueryId_LessThan(queryId, null);
}
public void setQueryId_LessThan(String queryId, ConditionOptionCall<RangeQueryBuilder> opLambda) {
RangeQueryBuilder builder = regRangeQ("queryId", ConditionKey.CK_LESS_THAN, queryId);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setQueryId_GreaterEqual(String queryId) {
setQueryId_GreaterEqual(queryId, null);
}
public void setQueryId_GreaterEqual(String queryId, ConditionOptionCall<RangeQueryBuilder> opLambda) {
RangeQueryBuilder builder = regRangeQ("queryId", ConditionKey.CK_GREATER_EQUAL, queryId);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setQueryId_LessEqual(String queryId) {
setQueryId_LessEqual(queryId, null);
}
public void setQueryId_LessEqual(String queryId, ConditionOptionCall<RangeQueryBuilder> opLambda) {
RangeQueryBuilder builder = regRangeQ("queryId", ConditionKey.CK_LESS_EQUAL, queryId);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public BsSearchLogCQ addOrderBy_QueryId_Asc() {
regOBA("queryId");
return this;
}
public BsSearchLogCQ addOrderBy_QueryId_Desc() {
regOBD("queryId");
return this;
}
public void setClientIp_Equal(String clientIp) {
setClientIp_Term(clientIp, null);
}

View file

@ -15,12 +15,7 @@
*/
package org.codelibs.fess.es.log.exentity;
import java.time.LocalDateTime;
import org.codelibs.fess.es.log.bsentity.BsClickLog;
import org.codelibs.fess.es.log.exbhv.SearchLogBhv;
import org.codelibs.fess.util.ComponentUtil;
import org.dbflute.optional.OptionalEntity;
/**
* @author FreeGen
@ -29,58 +24,6 @@ public class ClickLog extends BsClickLog {
private static final long serialVersionUID = 1L;
private LocalDateTime queryRequestedAt;
private String userSessionId;
private String docId;
private long clickCount;
private OptionalEntity<SearchLog> searchLog;
public OptionalEntity<SearchLog> getSearchLog() {
if (searchLog == null) {
final SearchLogBhv searchLogBhv = ComponentUtil.getComponent(SearchLogBhv.class);
searchLog = searchLogBhv.selectEntity(cb -> {
cb.query().docMeta().setId_Equal(getSearchLogId());
});
}
return searchLog;
}
public String getUserSessionId() {
return userSessionId;
}
public void setUserSessionId(final String userSessionId) {
this.userSessionId = userSessionId;
}
public LocalDateTime getQueryRequestedAt() {
return queryRequestedAt;
}
public void setQueryRequestedAt(final LocalDateTime queryRequestedAt) {
this.queryRequestedAt = queryRequestedAt;
}
public String getDocId() {
return docId;
}
public void setDocId(final String docId) {
this.docId = docId;
}
public long getClickCount() {
return clickCount;
}
public void setClickCount(final long clickCount) {
this.clickCount = clickCount;
}
public String getId() {
return asDocMeta().id();
}

View file

@ -21,7 +21,6 @@ import java.util.List;
import org.codelibs.core.lang.StringUtil;
import org.codelibs.fess.Constants;
import org.codelibs.fess.es.log.bsentity.BsSearchLog;
import org.codelibs.fess.es.log.exbhv.ClickLogBhv;
import org.codelibs.fess.es.log.exbhv.SearchFieldLogBhv;
import org.codelibs.fess.es.log.exbhv.UserInfoBhv;
import org.codelibs.fess.util.ComponentUtil;
@ -91,16 +90,6 @@ public class SearchLog extends BsSearchLog {
this.userInfo = userInfo;
}
public List<ClickLog> getClickLogList() {
if (clickLogList == null) {
final ClickLogBhv clickLogBhv = ComponentUtil.getComponent(ClickLogBhv.class);
clickLogList = clickLogBhv.selectList(cb -> {
cb.query().setSearchLogId_Equal(getId());
});
}
return clickLogList;
}
public List<SearchFieldLog> getSearchFieldLogList() {
if (searchFieldLogList == null) {
final SearchFieldLogBhv searchFieldLogBhv = ComponentUtil.getComponent(SearchFieldLogBhv.class);

View file

@ -44,6 +44,7 @@ import org.codelibs.fess.util.ComponentUtil;
import org.codelibs.fess.util.DocumentUtil;
import org.codelibs.fess.util.StreamUtil;
import org.elasticsearch.action.update.UpdateRequest;
import org.elasticsearch.script.Script;
import org.lastaflute.di.core.SingletonLaContainer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -192,7 +193,9 @@ public class SearchLogHelper {
private void storeSearchLogList(final List<SearchLog> searchLogList) {
final SearchLogBhv searchLogBhv = ComponentUtil.getComponent(SearchLogBhv.class);
final SearchFieldLogBhv searchFieldLogBhv = ComponentUtil.getComponent(SearchFieldLogBhv.class);
searchLogBhv.batchUpdate(searchLogList);
searchLogBhv.batchUpdate(searchLogList, op -> {
op.setRefresh(true);
});
searchLogList.stream().forEach(searchLog -> {
final List<SearchFieldLog> fieldLogList = new ArrayList<>();
searchLog.getSearchFieldLogList().stream().forEach(fieldLog -> {
@ -204,30 +207,26 @@ public class SearchLogHelper {
}
protected void processClickLogQueue(final Queue<ClickLog> queue) {
final Map<String, Long> clickCountMap = new HashMap<>();
final Map<String, Integer> clickCountMap = new HashMap<>();
final List<ClickLog> clickLogList = new ArrayList<>();
for (final ClickLog clickLog : queue) {
try {
final SearchLogBhv searchLogBhv = SingletonLaContainer.getComponent(SearchLogBhv.class);
searchLogBhv.selectEntity(cb -> {
cb.query().setRequestedAt_Equal(clickLog.getQueryRequestedAt());
cb.query().setUserSessionId_Equal(clickLog.getUserSessionId());
cb.query().setQueryId_Equal(clickLog.getQueryId());
}).ifPresent(entity -> {
clickLog.setSearchLogId(entity.getId());
clickLogList.add(clickLog);
final String docId = clickLog.getDocId();
Integer countObj = clickCountMap.get(docId);
if (countObj == null) {
countObj = Integer.valueOf(1);
} else {
countObj = countObj.intValue() + 1;
}
clickCountMap.put(docId, countObj);
}).orElse(() -> {
logger.warn("Not Found for SearchLog: " + clickLog);
});
final String docId = clickLog.getDocId();
Long countObj = clickCountMap.get(docId);
if (countObj == null) {
final long clickCount = clickLog.getClickCount();
countObj = Long.valueOf(clickCount + 1);
} else {
countObj = countObj.longValue() + 1;
}
clickCountMap.put(docId, countObj);
} catch (final Exception e) {
logger.warn("Failed to process: " + clickLog, e);
}
@ -244,28 +243,19 @@ public class SearchLogHelper {
if (!clickCountMap.isEmpty()) {
final SearchService searchService = ComponentUtil.getComponent(SearchService.class);
try {
final Map<String, String> docIdMap = new HashMap<>();
searchService
.getDocumentListByDocIds(clickCountMap.keySet().toArray(new String[clickCountMap.size()]),
new String[] { fieldHelper.idField, fieldHelper.docIdField })
.stream()
.forEach(
doc -> {
docIdMap.put(DocumentUtil.getValue(doc, fieldHelper.docIdField, String.class),
DocumentUtil.getValue(doc, fieldHelper.idField, String.class));
});
searchService.bulkUpdate(builder -> {
clickCountMap
.entrySet()
.stream()
.forEach(
entry -> {
final String id = docIdMap.get(entry.getKey());
if (id != null) {
builder.add(new UpdateRequest(fieldHelper.docIndex, fieldHelper.docType, id).doc(
fieldHelper.clickCountField, entry.getValue()));
}
});
searchService.getDocumentListByDocIds(clickCountMap.keySet().toArray(new String[clickCountMap.size()]),
new String[] { fieldHelper.docIdField }).forEach(doc -> {
String id = DocumentUtil.getValue(doc, fieldHelper.docIdField, String.class);
String docId = DocumentUtil.getValue(doc, fieldHelper.docIdField, String.class);
if (id != null && docId != null && clickCountMap.containsKey(docId)) {
Integer count = clickCountMap.get(docId);
Script script = new Script("ctx._source." + fieldHelper.clickCountField + "+=" + count.toString());
Map<String, Object> upsertMap = new HashMap<>();
upsertMap.put(fieldHelper.clickCountField, 1);
builder.add(new UpdateRequest(fieldHelper.docIndex, fieldHelper.docType, id).script(script).upsert(upsertMap));
}
});
});
} catch (final Exception e) {
logger.warn("Failed to update clickCounts", e);

View file

@ -41,6 +41,7 @@ import org.apache.commons.lang3.StringUtils;
import org.codelibs.core.lang.StringUtil;
import org.codelibs.fess.Constants;
import org.codelibs.fess.app.service.RoleTypeService;
import org.codelibs.fess.app.web.base.login.FessLoginAssist;
import org.codelibs.fess.crawler.util.CharUtil;
import org.codelibs.fess.es.config.exentity.RoleType;
import org.codelibs.fess.util.ComponentUtil;
@ -119,7 +120,7 @@ public class SystemHelper implements Serializable {
}
public String getUsername() {
return ComponentUtil.getLoginAssist().getSessionUserBean().map(user -> {
return ComponentUtil.getComponent(FessLoginAssist.class).getSessionUserBean().map(user -> {
return user.getUserId();
}).orElse(Constants.GUEST_USER);
}

View file

@ -22,7 +22,7 @@ public interface UserInfoHelper {
String getUserCode();
String generateQueryId(String query, List<Map<String, Object>> documentItems);
void storeQueryId(String query, List<Map<String, Object>> documentItems);
String[] getResultDocIds(String queryId);

View file

@ -116,13 +116,11 @@ public class CookieUserInfoHelperImpl implements UserInfoHelper {
}
@Override
public String generateQueryId(final String query, final List<Map<String, Object>> documentItems) {
public void storeQueryId(final String queryId, final List<Map<String, Object>> documentItems) {
final HttpSession session = LaRequestUtil.getRequest().getSession(false);
if (session != null) {
final FieldHelper fieldHelper = ComponentUtil.getFieldHelper();
final String queryId = getId();
final List<String> docIdList = new ArrayList<String>();
for (final Map<String, Object> map : documentItems) {
final Object docId = map.get(fieldHelper.docIdField);
@ -134,10 +132,8 @@ public class CookieUserInfoHelperImpl implements UserInfoHelper {
if (!docIdList.isEmpty()) {
final Map<String, String[]> resultDocIdsCache = getResultDocIdsCache(session);
resultDocIdsCache.put(queryId, docIdList.toArray(new String[docIdList.size()]));
return queryId;
}
}
return StringUtil.EMPTY;
}
@Override

View file

@ -18,7 +18,6 @@ package org.codelibs.fess.util;
import org.codelibs.core.crypto.CachedCipher;
import org.codelibs.core.misc.DynamicProperties;
import org.codelibs.fess.api.WebApiManagerFactory;
import org.codelibs.fess.app.web.base.login.FessLoginAssist;
import org.codelibs.fess.crawler.entity.EsAccessResult;
import org.codelibs.fess.crawler.extractor.ExtractorFactory;
import org.codelibs.fess.crawler.service.DataService;
@ -51,7 +50,6 @@ import org.codelibs.fess.job.JobExecutor;
import org.lastaflute.core.message.MessageManager;
import org.lastaflute.di.core.SingletonLaContainer;
import org.lastaflute.di.core.factory.SingletonLaContainerFactory;
import org.lastaflute.web.servlet.session.SessionManager;
public final class ComponentUtil {
private static final String FESS_ES_CLIENT = "fessEsClient";
@ -265,14 +263,6 @@ public final class ComponentUtil {
return SingletonLaContainer.getComponent(FESS_ES_CLIENT);
}
public static FessLoginAssist getLoginAssist() {
return getComponent(FessLoginAssist.class);
}
public static SessionManager getSessionManager() {
return getComponent(SessionManager.class);
}
public static <T> T getComponent(final Class<T> clazz) {
return SingletonLaContainer.getComponent(clazz);
}

View file

@ -15,6 +15,9 @@
*/
package org.codelibs.fess.util;
import java.util.UUID;
import org.codelibs.core.lang.StringUtil;
import org.codelibs.fess.Constants;
public class QueryUtil {
@ -43,4 +46,8 @@ public class QueryUtil {
}
return escapedValue;
}
public static String generateId() {
return UUID.randomUUID().toString().replace("-", StringUtil.EMPTY);
}
}

View file

@ -4,7 +4,10 @@
<components>
<component name="fessEsClient" class="org.codelibs.fess.es.client.FessEsClient">
<property name="settings">
{"http.cors.enabled":"true", "http.cors.allow-origin":"*", "index.number_of_replicas":"0"}
{"http.cors.enabled":"true",
"http.cors.allow-origin":"*",
"script.engine.groovy.inline.update":"on",
"index.number_of_replicas":"0"}
</property>
<!-- Dictionaries -->
<postConstruct name="addConfigFile">

View file

@ -7,7 +7,15 @@
"enabled": false
},
"properties": {
"searchLogId": {
"docId": {
"type": "string",
"index": "not_analyzed"
},
"queryId": {
"type": "string",
"index": "not_analyzed"
},
"userSessionId": {
"type": "string",
"index": "not_analyzed"
},
@ -15,9 +23,16 @@
"type": "string",
"index": "not_analyzed"
},
"order": {
"type": "integer"
},
"requestedAt": {
"type": "date",
"format": "date_optional_time"
},
"queryRequestedAt": {
"type": "date",
"format": "date_optional_time"
}
}
}

View file

@ -15,6 +15,14 @@
"type": "string",
"index": "not_analyzed"
},
"docId": {
"type": "string",
"index": "not_analyzed"
},
"queryId": {
"type": "string",
"index": "not_analyzed"
},
"createdAt": {
"type": "date",
"format": "date_optional_time"

View file

@ -11,6 +11,10 @@
"type": "string",
"index": "not_analyzed"
},
"queryId": {
"type": "string",
"index": "not_analyzed"
},
"searchWord": {
"type": "string",
"index": "not_analyzed"

View file

@ -23,13 +23,13 @@
</c:if>
<div id="result" class="row content">
<input type="hidden" id="queryId" value="${f:u(queryId)}" />
<input type="hidden" id="rt" value="${f:u(rt)}" />
<input type="hidden" id="rt" value="${f:u(requestedTime)}" />
<div class="col-md-8">
<ol>
<c:forEach var="doc" varStatus="s" items="${documentItems}">
<li id="result${s.index}">
<h3 class="title ellipsis">
<a class="link" href="${doc.urlLink}" data-uri="${doc.urlLink}" data-id="${doc.doc_id}">${f:h(doc.contentTitle)}</a>
<a class="link" href="${doc.urlLink}" data-uri="${doc.urlLink}" data-id="${doc.doc_id}" data-order="${s.index}">${f:h(doc.contentTitle)}</a>
</h3>
<div class="body">
<div class="description">${doc.contentDescription}</div>

View file

@ -25,6 +25,8 @@ $(function(){
$result.on('mousedown', 'a.link', function(e){
var docId = $(this).attr('data-id'),
rt = $('#rt').val(),
queryId = $('#queryId').val(),
order = $(this).attr('data-order'),
url = $(this).attr('href'),
buf = [];
buf.push(contextPath);
@ -32,6 +34,10 @@ $(function(){
buf.push(rt);
buf.push('&docId=');
buf.push(docId);
buf.push('&queryId=');
buf.push(queryId);
buf.push('&order=');
buf.push(order);
var hashIndex = url.indexOf('#');
if (hashIndex >= 0) {