以不同方式分析单个弹性搜索字段
analyzing a single elasticsearch field in different ways
我想知道如何同时使用两个不同的分析器分析 elasticsearch 字段。我正在创建一个 elasticsearch 插件,所以我需要 java 代码来实现它。
您可以使用文档中的 multi-fields to achieve the same. Refer multiple analyzer 部分作为示例。
您可以在 java 代码中使用 Create Index API 创建多字段索引
CreateIndexRequest request = new CreateIndexRequest("twitter");
Map<String, Object> email_second = new HashMap<>();
email_second.put("type", "text");
email_second.put("analyzer", "custom_standard");
Map<String, Object> email = new HashMap<>();
email.put("type", "text");
email.put("analyzer", "standard");
email.put("fields", "email_second");
Map<String, Object> properties = new HashMap<>();
properties.put("email", email);
Map<String, Object> mapping = new HashMap<>();
mapping.put("properties", properties);
request.mapping(mapping);
CreateIndexResponse createIndexResponse = client.indices().create(request, RequestOptions.DEFAULT);
您可以使用 email
访问第一个电子邮件字段,然后使用 email.email_second
名称访问第二个电子邮件字段。
我想知道如何同时使用两个不同的分析器分析 elasticsearch 字段。我正在创建一个 elasticsearch 插件,所以我需要 java 代码来实现它。
您可以使用文档中的 multi-fields to achieve the same. Refer multiple analyzer 部分作为示例。
您可以在 java 代码中使用 Create Index API 创建多字段索引
CreateIndexRequest request = new CreateIndexRequest("twitter");
Map<String, Object> email_second = new HashMap<>();
email_second.put("type", "text");
email_second.put("analyzer", "custom_standard");
Map<String, Object> email = new HashMap<>();
email.put("type", "text");
email.put("analyzer", "standard");
email.put("fields", "email_second");
Map<String, Object> properties = new HashMap<>();
properties.put("email", email);
Map<String, Object> mapping = new HashMap<>();
mapping.put("properties", properties);
request.mapping(mapping);
CreateIndexResponse createIndexResponse = client.indices().create(request, RequestOptions.DEFAULT);
您可以使用 email
访问第一个电子邮件字段,然后使用 email.email_second
名称访问第二个电子邮件字段。