in java/core/src/main/java/com/aliyun/openservices/tablestore/agent/memory/MemoryStoreImpl.java [832:856]
public void initSearchIndex() {
if (sessionSearchIndexSchema == null || sessionSearchIndexSchema.isEmpty()) {
log.warn("skip create session search index because sessionSearchIndexSchema is empty");
} else {
List<FieldSchema> sessionSchemas = new ArrayList<>(sessionSearchIndexSchema);
TablestoreHelper.addSchemaIfNotExist(sessionSchemas, new FieldSchema(Session.SESSION_USER_ID, FieldType.KEYWORD));
TablestoreHelper.addSchemaIfNotExist(sessionSchemas, new FieldSchema(Session.SESSION_SESSION_ID, FieldType.KEYWORD));
TablestoreHelper.addSchemaIfNotExist(sessionSchemas, new FieldSchema(Session.SESSION_UPDATE_TIME, FieldType.LONG));
TablestoreHelper.createSearchIndexIfNotExist(client, sessionTableName, sessionSearchIndexName, sessionSchemas, Collections.emptyList());
}
if (messageSearchIndexSchema == null || messageSearchIndexSchema.isEmpty()) {
log.warn("skip create message search index because messageSearchIndexSchema is empty");
} else {
List<FieldSchema> messageSchemas = new ArrayList<>(messageSearchIndexSchema);
TablestoreHelper.addSchemaIfNotExist(messageSchemas, new FieldSchema(Message.MESSAGE_SESSION_ID, FieldType.KEYWORD));
TablestoreHelper.addSchemaIfNotExist(messageSchemas, new FieldSchema(Message.MESSAGE_MESSAGE_ID, FieldType.KEYWORD));
TablestoreHelper.addSchemaIfNotExist(messageSchemas, new FieldSchema(Message.MESSAGE_CREATE_TIME, FieldType.LONG));
TablestoreHelper.addSchemaIfNotExist(
messageSchemas,
new FieldSchema(Message.MESSAGE_CONTENT, FieldType.TEXT).setAnalyzer(FieldSchema.Analyzer.MaxWord)
);
TablestoreHelper.createSearchIndexIfNotExist(client, messageTableName, messageSearchIndexName, messageSchemas, Collections.emptyList());
}
}