标签: spring-data-elasticsearch

具有spring-data-elasticsearch的多租户

有没有办法让spring-data-elasticsearch适用于多租户应用?

我已经让它在没有多租户的情况下工作了,但我不知道如何为每个租户提供多个索引或多个节点?我想知道是否有任何方法可以为每个租户定义不同的索引名称,或者在我的实体类中添加临时属性,该实体类已正确注释@Document(...).当我试图做到这个问题时,那@Transient也是标记的ElasticSearchRepository.任何的想法?

elasticsearch spring-data spring-data-elasticsearch

8
推荐指数
1
解决办法
1528
查看次数

Spring Data REST似乎不适用于elasticsearch

我正在尝试使用Spring Data REST进行弹性搜索.用于POST的内置REST控制器似乎不起作用:我在尝试发布文档时收到错误.这个问题很容易重现:我创建了一个简单的实体:

@Document(indexName = "user", type = "user", shards = 1, replicas = 0, refreshInterval = "-1")
public class Customer {

    @Id
    private String id;

    @Field(type = FieldType.String, store = true)
    private String firstName;

     @Field(type = FieldType.String, store = true)
    private String lastName;
    // getters and setters are skipped
}
Run Code Online (Sandbox Code Playgroud)

库:

public interface UserRepository extends ElasticsearchRepository<User, String> {
}
Run Code Online (Sandbox Code Playgroud)

当我尝试获取所有用户时,我收到了响应:

 curl -X GET "http://localhost:9000/users"
 {
  "_links" : {
   "self" : {
   "href" : "http://localhost:9000/users{?page,size,sort}",
   "templated" : true
},
"search" …
Run Code Online (Sandbox Code Playgroud)

elasticsearch spring-data spring-data-rest spring-data-elasticsearch

8
推荐指数
1
解决办法
1684
查看次数

Spring Data弹性搜索中的事务支持

我正在使用Spring Data Elasticsearch,Spring Data支持Transactional查询.

这是我通过@Transactional注释启用的.

但由于elasticsearch没有任何ACID属性,这个Transactional做了什么,文档本身并不清楚这一点

java spring spring-data spring-data-elasticsearch

8
推荐指数
1
解决办法
647
查看次数

如何在elasticsearch中存储Java 8(JSR-310)日期

我知道elasticsearch只能在Date内部保存类型.但我可以让它知道存储/转换Java 8 ZonedDateTime,因为我在我的实体中使用此类型?

我在类路径上使用spring-boot:1.3.1 + spring-data-elasticsearch和jackson-datatype-jsr310.当我尝试保存一个ZonedDateTimenor Instant或其他东西时,似乎也没有适用任何转换.

elasticsearch spring-data-elasticsearch

8
推荐指数
1
解决办法
1740
查看次数

如何使用python脚本增加elasticsearch中的max_result_window?

我知道,我们可以使用curl来增加max_result_window,如:

curl -XPUT "http://localhost:9200/index1/_settings" -d '{ "index" : { "max_result_window" : 500000} }'
Run Code Online (Sandbox Code Playgroud)

但是我如何使用python做同样的事情?

我的代码

es = Elasticsearch(['http://localhost:9200'])

res = es.search(index="index1", doc_type="log",size=10000, from_=0, body={ "query": {
....query starts
}})
Run Code Online (Sandbox Code Playgroud)

我的问题是如何在这里更改max_result_window的设置.

python python-2.6 elasticsearch elasticsearch-plugin spring-data-elasticsearch

8
推荐指数
1
解决办法
5520
查看次数

spring数据elasticsearch:带有注释的设置和映射配置不起作用

我正在将嵌入式Elasticsearch与Spring Boot结合使用,并且尝试使用批注来配置设置和映射。我遵循了该教程,该教程说明了如何实现对多个字段的搜索。无论如何,我已经定义了settings.json和mappings.json在我的文档实体所描述的在这里,但它好像它不读文件,因为卷曲荷兰国际集团的映射关系中的文件定义不返回相应的配置。

索引是通过春季批处理执行的。它从数据库读取数据并将其写入elasticsearch。这很完美。

当我向http:// localhost:9200 / profile / _search发出POST请求时,没有任何结果(应该返回7项):

{
   "size": 10,
   "query": {
       "match": {
       "_all": {
           "query": "user male",
           "operator": "and"
       }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

如果我将查询更改为“ user5”,它将使用该昵称返回用户。

如果有人可以给我提示,我将不胜感激。配置有什么问题?

配置

@Configuration
@EnableElasticsearchRepositories(basePackages ="com.company.searchengine.repository")
public class ElasticSearchConfiguration {
    @Value("${elasticsearch.clustername}")
    private String esClusterName;

    @Bean
    public ElasticsearchOperations elasticsearchTemplate() throws IOException {
        return new ElasticsearchTemplate(nodeBuilder().local(true).clusterName
            (esClusterName).node()
            .client());
    }
}
Run Code Online (Sandbox Code Playgroud)

文件

@EqualsAndHashCode(of = "uuid")
@ToString(exclude = "uuid")
@NoArgsConstructor(onConstructor = @__({@JsonCreator}))
@Getter
@Setter
@Document(indexName = …
Run Code Online (Sandbox Code Playgroud)

elasticsearch spring-data-elasticsearch

8
推荐指数
1
解决办法
7524
查看次数

如何防止在保存时运行 AfterSaveCallback

如何防止在某些条件下在保存时运行 AfterSaveCallback (say AfterSaveCallback<Foo>)。我们希望避免触发,AfterSaveCallback即使它存在并注册。如何实现这一目标?

参考https://docs.spring.io/spring-data/elasticsearch/docs/4.0.1.RELEASE/api/index.html?org/springframework/data/elasticsearch/core/event/AfterSaveCallback.html

spring-boot spring-data-elasticsearch

8
推荐指数
1
解决办法
123
查看次数

Spring Data Elasticsearch的ElasticsearchTemplate与ElasticsearchRepository

我参考了Spring Data Elasticsearch

  • org.springframework.data.elasticsearch.repository.ElasticsearchRepository
  • org.springframework.data.elasticsearch.core.ElasticsearchTemplate

它们似乎是两个不同的API,它们实现了相同的目标,但我不确定这两种类型之间的区别是什么,更重要的是何时使用哪种类型.

有人可以提供建议和指导吗?

elasticsearch spring-data-elasticsearch

7
推荐指数
1
解决办法
5231
查看次数

如何为spring数据elasticsearch添加排序

我正在使用 elasticsearch spring 数据编写一个 api,我想添加排序。我无法在谷歌中找到解决方案。所以我写在这里问你们我怎么能做到这一点。如果您需要更多代码,请告诉我您需要什么,我会尝试添加更多代码。

我的代码看起来像:

拍卖查询控制器.java

@RequestMapping(value = "/auctions/search", produces = MediaType.APPLICATION_JSON_VALUE)
    private List<Auction> search(
            @RequestParam(value = "categoryId", required = false) Long categoryId,
            @RequestParam(value = "treeCategoryId", required = false) Long treeCategoryId,
            @RequestParam(value = "currency", required = false) String currency,
            @RequestParam(value = "priceFrom", required = false) Long priceFrom,
            @RequestParam(value = "priceTo", required = false) Long priceTo,
            @RequestParam(value = "startDateFrom", required = false) Long startDateFrom,
            @RequestParam(value = "startDateTo", required = false) Long startDateTo,
            @RequestParam(value = "endDateFrom", required = false) Long endDateFrom, …
Run Code Online (Sandbox Code Playgroud)

java elasticsearch spring-data spring-boot spring-data-elasticsearch

7
推荐指数
1
解决办法
9033
查看次数

ES Rest High Level Client 闲置一段时间后抛出 SocketTimeoutException

RestHighLevelClient用于在 spring-boot 应用程序中连接到 ES 6.4(托管在 AWS 上)。当应用闲置一段时间,请求到达时,RestHighLevelClient抛出SocketTimeoutException

[Request processing failed; nested exception is org.springframework.data.elasticsearch.ElasticsearchException: Error while bulk for request: org.elasticsearch.action.bulk.BulkRequest@21511b6c] w
java.net.SocketTimeoutException: 5,000 milliseconds timeout on connection http-outgoing-38 [ACTIVE]
at org.apache.http.nio.protocol.HttpAsyncRequestExecutor.timeout(HttpAsyncRequestExecutor.java:387) ~[httpcore-nio-4.4.11.jar!/:4.4.11]
at org.apache.http.impl.nio.client.InternalIODispatch.onTimeout(InternalIODispatch.java:92) ~[httpasyncclient-4.1.4.jar!/:4.1.4]
at org.apache.http.impl.nio.client.InternalIODispatch.onTimeout(InternalIODispatch.java:39) ~[httpasyncclient-4.1.4.jar!/:4.1.4]
at org.apache.http.impl.nio.reactor.AbstractIODispatch.timeout(AbstractIODispatch.java:175) ~[httpcore-nio-4.4.11.jar!/:4.4.11]
at org.apache.http.impl.nio.reactor.BaseIOReactor.sessionTimedOut(BaseIOReactor.java:263) ~[httpcore-nio-4.4.11.jar!/:4.4.11]
at org.apache.http.impl.nio.reactor.AbstractIOReactor.timeoutCheck(AbstractIOReactor.java:492) ~[httpcore-nio-4.4.11.jar!/:4.4.11]
at org.apache.http.impl.nio.reactor.BaseIOReactor.validate(BaseIOReactor.java:213) ~[httpcore-nio-4.4.11.jar!/:4.4.11]
at org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:280) ~[httpcore-nio-4.4.11.jar!/:4.4.11]
at org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:104) ~[httpcore-nio-4.4.11.jar!/:4.4.11]
at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:591) ~[httpcore-nio-4.4.11.jar!/:4.4.11]
at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na]
Run Code Online (Sandbox Code Playgroud)

RestHighLevelClient 是使用以下方法创建的:

    @Bean
    RestHighLevelClient client() {

        ClientConfiguration clientConfiguration = ClientConfiguration.builder()
                .connectedTo(elasticsearchHostAndPort)
                .build();

        return …
Run Code Online (Sandbox Code Playgroud)

java spring elasticsearch spring-data-elasticsearch

7
推荐指数
2
解决办法
5757
查看次数