Spring数据elasticSearch:使用别名更新实体

时间:2015-05-20 14:10:43

标签: spring elasticsearch spring-data-elasticsearch

我目前正在使用spring-data-elasticsearch API。我需要它来处理一个别名,指向它的几个索引 每个索引都存储相同的类型,但是日常存储(第一个索引是星期一的结果,第二个是星期二的结果......)。

由于别名,某些ElasticsearchRepository方法无法正常工作。我目前设法进行搜索(findOne() equivalent),但我无法更新实体 我不知道如何实现这一目标,我查看了文档和样本..但是我被卡住了。

我的资料库

public interface EsUserRepository extends ElasticsearchRepository<User, String>
{
    @Query("{\"bool\" : {\"must\" : {\"term\" : {\"id_str\" : \"?0\"}}}}")
    User findByIdStr(String idStr);
}

我的实体

@Document(indexName = "osintlab", type = "users")
public class User
{
    // Elasticsearch internal id
    @Id
    private String id;

    // Just a test to get the real object index (_index field), in order to save it
    @Field(index = FieldIndex.analyzed, type = FieldType.String)
    private String indexName;

    // Real id, saved under the "id_str" field
    @Field(type = FieldType.String)
    private String id_str;

    @Field(type = FieldType.String)
    private List<String> tag_user;

}

我测试了什么

final IndexQuery indexQuery = new IndexQuery();
indexQuery.setId(user.getId());
indexQuery.setObject(user);

esTemplate.index(indexQuery);

userRepository.index(user));

userRepository.save(user))

0 个答案:

没有答案