elasticsearch - ElasticSearch Java API与ElasticsearchTemplate

标签 elasticsearch spring-data-elasticsearch elasticsearch-java-api

使用ElasticSearchTemplate,我可以轻松地从简单实体类中创建索引。说我要保存Book.java:

@Document(indexName = "bookshop", type = "book", shards = 2, replicas = 2, refreshInterval = "-1")
public class Book {

    @Id
    private String id;
    @Field(type = FieldType.String, store = true)
    private String title;
}

它足以使:
    elasticsearchTemplate.createIndex(Book.class);
    elasticsearchTemplate.putMapping(Book.class);
    elasticsearchTemplate.refresh(Book.class);

是否可以通过不带spring-data-elasticsearch和对Strings(JSON)进行操作的纯ES Java API来实现?

最佳答案

实际上,Java API需要JSON,但是有ES helpers,因此代码如下:

CreateIndexResponse createIndexRequestBuilder = client().admin().indices()
                .prepareCreate(INDEX_NAME)
                .setSource(XContentFactory.jsonBuilder()
                        .startObject()
                        .field("title", "My Title 1")
                        .endObject()
                )
                .setSettings(
                        Settings.settingsBuilder()
                                .put("index.number_of_shards", 2)
                                .put("index.number_of_replicas", 2)
                )
                .execute()
                .actionGet();

关于elasticsearch - ElasticSearch Java API与ElasticsearchTemplate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39178739/

相关文章:

java - 使用 Elasticsearch Java API 客户端创建带有列表的 TermQuery

elasticsearch - Elasticsearch Java API:用于文档计数的聚合过滤器

Elasticsearch 将字符串视为日期

elasticsearch - ElasticSearch简单查询

elasticsearch - 使用metas.transfer和N:M关系检索小首页

spring-boot - spring boot项目中如何在ElasticSearch中进行源过滤?

java - 我有多个 Elasticsearch 的应该案例,但只有第一个有效

django - 选择要与SearchQuerySet一起使用的模型

java - Spring Data Elasticsearch不会将空值写入插入的文档

spring-boot - 在Spring ElasticSearch Data中找不到类EntityMapper