问题标签 [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.
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):
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 注释?
我的实体:
spring-batch - 用于 Elasticsearch 扫描和滚动的 spring-batch ItemReader
在 spring-batch 中,是否支持 Elasticsearch ItemReader,使用扫描和滚动功能?我确实看到了这个扩展,但这是基于正常的 spring-data 搜索查询。有一个基于扫描和滚动功能的会很好,因为批处理作业主要需要处理大量数据。谢谢。
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 目前是否支持此功能?
如果是,是否有可用的样品?
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 模型的方法。
elasticsearch - Elasticsearch 多匹配精确匹配提升
我们使用弹簧数据弹性搜索。我们使用多重匹配查询来搜索多个字段。
我们使用 PHRASE_PREFIX 进行词组匹配。
现在,我们想为昵称上的精确匹配添加提升(仅在精确匹配时提升)。
例如,当我搜索 Phone 时,如果 nickName 完全匹配,则它应该在结果中排在第一位。如果没有完全匹配,则应该给予 firstName 提升。我尝试像下面这样提升。
提升似乎不起作用。也不确定,如何仅在字段的完全匹配时添加提升。
谢谢
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"])
我理解这个问题,但我不知道如何解决它。请问有什么想法吗?
elasticsearch - 从 SearchQuery 对象获取字符串查询 (JSON)
出于调试目的,我需要知道 spring-data-elasticsearch 正在向 ElasticSearch 集群发送什么查询。我试图toString
在对象上调用该方法SearchQuery
,但没有返回我需要的内容。
我在 Java 中所做的(使用 spring-data-elasticsearch)是:
我希望返回类似在 ES 集群 REST API 中执行的普通查询返回的内容:
提前致谢!
spring - Spring data elasticSearch:使用别名更新实体
我目前正在使用spring-data-elasticsearch
API。我需要它来处理一个有多个索引指向它的别名。
每个索引都存储相同的类型,但只是日常存储(第一个索引是星期一的结果,第二个是星期二的结果......)。
由于别名的原因,某些ElasticsearchRepository
方法不起作用。我目前设法进行了搜索 ( findOne() equivalent
),但我无法更新实体。
我不知道如何实现这一点,我查看了文档和示例..但我被卡住了。
我的存储库
我的实体
我测试的
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 版本也存在问题。