/**
* 創建索引
*/
public static void createIndex(JestClient client, String index) {
try {
JestResult result = client.execute(new CreateIndex.Builder(index).build());
LOGGER.info("result state:{}", result.isSucceeded());
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 刪除索引
*/
public static void deleteIndex(JestClient client, String index) {
try {
JestResult result = client.execute(new DeleteIndex.Builder(index).build());
LOGGER.info("result state:{}", result.isSucceeded());
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 創建索引映射
*/
public static void createIndexMapping(JestClient client, String index, String type,
Object mapping) {
PutMapping.Builder builder = new PutMapping.Builder(index, type, mapping);
try {
JestResult result = client.execute(builder.build());
LOGGER.info("result state:{}", result.isSucceeded());
} catch (IOException e) {
e.printStackTrace();
}
}
public static String getIndexMapping(JestClient client, String index, String type){
GetMapping.Builder builder = new Builder();
builder.addIndex(index).addType(type);
try {
JestResult result = client.execute(builder.build());
LOGGER.info("result state:{}", result.isSucceeded());
return result.getJsonString();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
public static void insertOrUpdateDocument(JestClient client, String id, String index,
Object source, String type) {
Index.Builder builder = new Index.Builder(source);
builder.id(id);
builder.refresh(true);
Index docIndex = builder.index(index).type(type).build();
try {
DocumentResult result = client.execute(docIndex);
LOGGER.info("result state:{}", result.isSucceeded());
} catch (IOException e) {
e.printStackTrace();
}
}
查詢相關
public static BoolQueryBuilder getQueryByFaceTime(BoolQueryBuilder query, long startTime,
long endTime) {
query.must(QueryBuilders.rangeQuery("face_time").gt(startTime).lt(endTime));
return query;
}
public static BoolQueryBuilder getQueryBySimilarity(BoolQueryBuilder query, float similarity) {
query.must(QueryBuilders.termQuery("human_similarity", similarity));
return query;
}
public static BoolQueryBuilder getQueryByDeviceId(BoolQueryBuilder query, String deviceId) {
query.must(QueryBuilders.termQuery("device_id", deviceId));
return query;
}
public static BoolQueryBuilder getQueryNotByRowKey(BoolQueryBuilder query, String rowKey) {
query.mustNot(QueryBuilders.termQuery("rowKey", rowKey));
return query;
}
public static BoolQueryBuilder getMergeIdsByHumanId(BoolQueryBuilder query, String humanId){
query.must(QueryBuilders.termQuery("human_id", humanId));
return query;
}
public static String getSearchSource(BoolQueryBuilder query, String[] columns) {
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
searchSourceBuilder.query(query).fetchSource(columns, null);
return searchSourceBuilder.toString();
}
public static AggregationBuilder countByField(String field,int size) {
return AggregationBuilders.terms("snap_count").field(field).size(size);
}