问题标签 [spring-data-elasticsearch]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
7428 浏览

spring - Spring Data Elasticsearch 需要名为 id 的属性

我开始使用 Spring Data Elasticsearch 并发现问题。在通过存储库调用 findAll() 的运行测试期间,我得到:

当我在我的项目实体中添加字段@Transient private Long id;时,我能够正确检索结果。但我不想添加此字段,因为我已经定义了名为projectId. 该字段也有注释@Id,为什么我的字段projectId不被视为 ID?看起来@Id注释不适用于spring-data-elasticsearch,有可能吗?

我应该怎么做才能避免向id我的实体添加瞬态字段?它更像是解决方法而不是解决方案......

项目类:

存储库:

测试:

配置(test-es-context.xml):

0 投票
2 回答
2736 浏览

spring-data-elasticsearch - Spring Data Elasticsearch 是否支持来自 JPA 的 @Id 注释?

我开始使用 Spring Data Elasticsearch。我读:

类的属性之一需要是一个 id,可以通过使用 @Id 对其进行注释或使用自动找到的名称 id 或 documentId 之一。

但是当我用 @Id 标记我的项目实体字段 projectId 时,elasticsearch 仍然在说:

我发现我正在使用 JPA 包中的注释 @Id: javax.persistence.Id。当我为我的字段添加另一个 @Id 注释@org.springframework.data.annotation.Id时,从存储库中获取是有效的!

问题是我不想同时使用两种 @Id 注释。此外,我只想使用 JPA 注释,因为其他模块正在使用基于 JPA 的存储库层(Spring Data JPA)。

Spring Data Elasticsearch 是否支持来自 JPA 的 @Id 注释?了解这一点非常重要,因为嵌入式 id 进一步如何?Spring Data Elasticsearch 是否支持 @EmbeddedId 注释?

我的实体:

0 投票
2 回答
2247 浏览

spring-batch - 用于 Elasticsearch 扫描和滚动的 spring-batch ItemReader

在 spring-batch 中,是否支持 Elasticsearch ItemReader,使用扫描和滚动功能?我确实看到了这个扩展,但这是基于正常的 spring-data 搜索查询。有一个基于扫描和滚动功能的会很好,因为批处理作业主要需要处理大量数据。谢谢。

0 投票
2 回答
12746 浏览

spring-data-elasticsearch - Spring Data Elastic Search 的聚合支持

弹性搜索已弃用 Facets,建议使用聚合 ( http://www.elastic.co/guide/en/elasticsearch/reference/1.x/search-aggregations.html )。

Spring Data Elastic Search 目前是否支持此功能?

如果是,是否有可用的样品?

0 投票
1 回答
3889 浏览

spring - Spring数据elasticSearch使用findOne返回null

我正在使用 elasticSearch 测试 Spring 数据。ES 服务器在同一个房间的远程服务器上运行。

我每天创建一个索引,使用别名。我试图找到一条简单的推文。但是当我尝试 a 时findOne(),它似乎不起作用,因为它总是返回null

另外,findAll(ids)因为我使用的是别名,所以不起作用,但我在文档中找不到如何处理这个问题。

我想达到什么目标?

目前,只需检索一条带有给定id_str.
count 方法有效, findOne 无效

这是我的问题
我应该怎么做findOne()才能工作?
我应该使用哪种方式搜索此别名中的多个索引?

这是数据在 ES 中的样子

我的模型

别名是alias,索引是alias_dd-mm-yyyy

我的存储库

我的测试

当然,具有测试 ID 的推文存在 :)。并且count()工作正常。

谢谢你的帮助


编辑

这是我所拥有的示例应用程序:https ://github.com/ogdabou/es-stackoverflow-sample

似乎 spring-data-elasticsearch 正在寻找字段“_id”而不是字段“id_str”。也许是因为方法解析(看那里)。我正在寻找一种将我的 json“id_str”属性绑定到我的 idStr java 模型的方法。

0 投票
0 回答
724 浏览

elasticsearch - Elasticsearch 多匹配精确匹配提升

我们使用弹簧数据弹性搜索。我们使用多重匹配查询来搜索多个字段。

我们使用 PHRASE_PREFIX 进行词组匹配。

现在,我们想为昵称上的精确匹配添加提升(仅在精确匹配时提升)。

例如,当我搜索 Phone 时,如果 nickName 完全匹配,则它应该在结果中排​​在第一位。如果没有完全匹配,则应该给予 firstName 提升。我尝试像下面这样提升。

提升似乎不起作用。也不确定,如何仅在字段的完全匹配时添加提升。

谢谢

0 投票
1 回答
527 浏览

java - 在 Spring 中将包含 gson 属性的实体保存到 ElasticSearch

我的 Spring 应用程序使用 Spring-data-elasticsearch ( https://github.com/spring-projects/spring-data-elasticsearch )。

我想将以下文档保存到 elasticsearch 数据库:

使用这种方式:

但我收到此错误:

com.fasterxml.jackson.databind.JsonMappingException: JsonObject (通过引用链: data.nosql.entities.CustomEntity ["exportJSON"]->com.google.gson.JsonObject["asString"])

我理解这个问题,但我不知道如何解决它。请问有什么想法吗?

0 投票
3 回答
3665 浏览

elasticsearch - 从 SearchQuery 对象获取字符串查询 (JSON)

出于调试目的,我需要知道 spring-data-elasticsearch 正在向 ElasticSearch 集群发送什么查询。我试图toString在对象上调用该方法SearchQuery,但没有返回我需要的内容。

我在 Java 中所做的(使用 spring-data-elasticsearch)是:

我希望返回类似在 ES 集群 REST API 中执行的普通查询返回的内容:

提前致谢!

0 投票
0 回答
2039 浏览

spring - Spring data elasticSearch:使用别名更新实体

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

由于别名的原因,某些ElasticsearchRepository方法不起作用。我目前设法进行了搜索 ( findOne() equivalent),但我无法更新实体。
我不知道如何实现这一点,我查看了文档和示例..但我被卡住了。

我的存储库

我的实体

我测试的

0 投票
1 回答
3789 浏览

mapping - spring-data-elasticsearch - @Field / FieldIndex.not_analyzed 被忽略

我正在使用 spring-data-elasticsearch 1.1.2。我正在尝试使用 java 注释来指定不应分析字段。

我使用以下注释:@Field(index = FieldIndex.not_analyzed) private String category;

生成的映射不包括该字段的“index”:“not_analyzed”:

我没有运气找到有关如何执行此操作的有用文档,但看起来它应该可以工作。

它应该工作吗?我在哪里可以找到更多信息?如何最好地调试?

谢谢你。

更新:最新的 1.2.0 版本也存在问题。