in core/src/main/java/org/apache/sdap/mudrod/weblog/structure/session/SessionTree.java [463:528]
public List<RankingTrainData> getRankingTrainData(String indexName) throws UnsupportedEncodingException {
List<RankingTrainData> trainDatas = new ArrayList<>();
List<SessionNode> queryNodes = this.getQueryNodes(this.root);
for (SessionNode querynode : queryNodes) {
List<SessionNode> children = querynode.getChildren();
LinkedHashMap<String, Boolean> datasetOpt = new LinkedHashMap<>();
int ndownload = 0;
for (SessionNode node : children) {
if ("dataset".equals(node.getKey())) {
Boolean bDownload = false;
List<SessionNode> nodeChildren = node.getChildren();
for (SessionNode aNodeChildren : nodeChildren) {
if ("ftp".equals(aNodeChildren.getKey())) {
bDownload = true;
ndownload += 1;
break;
}
}
datasetOpt.put(node.datasetId, bDownload);
}
}
// method 1: The priority of download data are higher
if (datasetOpt.size() > 1 && ndownload > 0) {
// query
RequestUrl requestURL = new RequestUrl();
String queryUrl = querynode.getRequest();
String infoStr = requestURL.getSearchInfo(queryUrl);
String query = null;
try {
query = es.customAnalyzing(props.getProperty(MudrodConstants.ES_INDEX_NAME), infoStr);
} catch (InterruptedException | ExecutionException e) {
if (e instanceof InterruptedException) {
Thread.currentThread().interrupt();
}
throw new RuntimeException("Error performing custom analyzing", e);
}
Map<String, String> filter = RequestUrl.getFilterInfo(queryUrl);
for (String datasetA : datasetOpt.keySet()) {
Boolean bDownloadA = datasetOpt.get(datasetA);
if (bDownloadA) {
for (String datasetB : datasetOpt.keySet()) {
Boolean bDownloadB = datasetOpt.get(datasetB);
if (!bDownloadB) {
String[] queries = query.split(",");
for (String query1 : queries) {
RankingTrainData trainData = new RankingTrainData(query1, datasetA, datasetB);
trainData.setSessionId(this.sessionID);
trainData.setIndex(indexName);
trainData.setFilter(filter);
trainDatas.add(trainData);
}
}
}
}
}
}
}
return trainDatas;
}