use of com.baidu.hugegraph.structure.constant.HugeType in project incubator-hugegraph-toolchain by apache.
the class BackupManager method doBackup.
public void doBackup(List<HugeType> types) {
this.startTimer();
for (HugeType type : types) {
switch(type) {
case VERTEX:
this.backupVertices();
break;
case EDGE:
this.backupEdges();
break;
case PROPERTY_KEY:
this.backupPropertyKeys();
break;
case VERTEX_LABEL:
this.backupVertexLabels();
break;
case EDGE_LABEL:
this.backupEdgeLabels();
break;
case INDEX_LABEL:
this.backupIndexLabels();
break;
default:
throw new AssertionError(String.format("Bad backup type: %s", type));
}
}
this.printSummary();
}
use of com.baidu.hugegraph.structure.constant.HugeType in project incubator-hugegraph-toolchain by apache.
the class PropertyIndexService method list.
/**
* The sort result like that, content is 'name'
* --------------+------------------------+---------------------------------
* base_value | index label name | fields
* --------------+------------------------+---------------------------------
* xxxname | xxxByName | name
* --------------+------------------------+---------------------------------
* | personByName | name
* person +------------------------+---------------------------------
* | personByAgeAndName | age name
* --------------+------------------------+---------------------------------
* | softwareByName | name
* software +------------------------+---------------------------------
* | softwareByPriveAndName | price name
* --------------+------------------------+---------------------------------
*/
public IPage<PropertyIndex> list(int connId, HugeType type, String content, int pageNo, int pageSize) {
HugeClient client = this.client(connId);
List<IndexLabel> indexLabels = client.schema().getIndexLabels();
Map<String, List<PropertyIndex>> matchedResults = new HashMap<>();
Map<String, List<PropertyIndex>> unMatchResults = new HashMap<>();
for (IndexLabel indexLabel : indexLabels) {
if (!indexLabel.baseType().equals(type)) {
continue;
}
String baseValue = indexLabel.baseValue();
List<PropertyIndex> groupedIndexes;
// Collect indexlabels that contains content
boolean match = baseValue.contains(content);
if (match) {
groupedIndexes = matchedResults.computeIfAbsent(baseValue, k -> new ArrayList<>());
} else {
groupedIndexes = unMatchResults.computeIfAbsent(baseValue, k -> new ArrayList<>());
}
match = match || indexLabel.name().contains(content) || indexLabel.indexFields().stream().anyMatch(f -> f.contains(content));
if (match) {
groupedIndexes.add(convert(indexLabel));
}
}
// Sort matched results by relevance
if (!StringUtils.isEmpty(content)) {
for (Map.Entry<String, List<PropertyIndex>> entry : matchedResults.entrySet()) {
List<PropertyIndex> groupedIndexes = entry.getValue();
groupedIndexes.sort(new Comparator<PropertyIndex>() {
final int highScore = 2;
final int lowScore = 1;
@Override
public int compare(PropertyIndex o1, PropertyIndex o2) {
int o1Score = 0;
if (o1.getName().contains(content)) {
o1Score += highScore;
}
if (o1.getFields().stream().anyMatch(field -> field.contains(content))) {
o1Score += lowScore;
}
int o2Score = 0;
if (o2.getName().contains(content)) {
o2Score += highScore;
}
if (o2.getFields().stream().anyMatch(field -> field.contains(content))) {
o2Score += lowScore;
}
return o2Score - o1Score;
}
});
}
}
List<PropertyIndex> all = new ArrayList<>();
matchedResults.values().forEach(all::addAll);
unMatchResults.values().forEach(all::addAll);
return PageUtil.page(all, pageNo, pageSize);
}
use of com.baidu.hugegraph.structure.constant.HugeType in project incubator-hugegraph-toolchain by apache.
the class RestoreManager method doRestore.
public void doRestore(List<HugeType> types) {
E.checkNotNull(this.mode, "mode");
this.startTimer();
for (HugeType type : types) {
switch(type) {
case VERTEX:
this.restoreVertices(type);
break;
case EDGE:
this.restoreEdges(type);
break;
case PROPERTY_KEY:
this.restorePropertyKeys(type);
break;
case VERTEX_LABEL:
this.restoreVertexLabels(type);
break;
case EDGE_LABEL:
this.restoreEdgeLabels(type);
break;
case INDEX_LABEL:
this.restoreIndexLabels(type);
break;
default:
throw new AssertionError(String.format("Bad restore type: %s", type));
}
}
this.printSummary();
if (this.clean) {
this.removeDirectory();
}
}
Aggregations