问题标签 [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.
elasticsearch - elasticsearch嵌套文档查询
我是 elasticsearch 的新手,对如何进行过滤、查询和聚合有一些想法,但不知道如何解决下面的以下问题。我希望能够从下面显示的文档中仅查询公司的最新交货(日期和 crate_quantity)。我不知道该怎么做。有没有办法使用最大聚合从每个文档中只提取最近的交付?
java - 带有过滤器的 Spring 数据 ElastiSearch 聚合
我正在尝试对按某些条件过滤的值执行聚合。我正在使用弹簧数据的 ElasticSearchTemplate.query() 方法也执行查询并在结果提取器中获取结果。我得到了正确的命中(即应用过滤器并且只检索与这些值匹配的文档。)。但是,对所有文档执行聚合。我相信聚合应该只应用于过滤值。以下是我正在使用的代码:
为了进一步调试问题,我编写了代码来执行查询,而不是使用 spring 数据。以下是代码:
令我惊讶的是,此查询正确执行,并且过滤器也应用于聚合。为了进一步分析,我浏览了elasticsearchtemplate的代码,发现它使用setPostFilter
方法来设置过滤器。然后我修改了我的代码以这样设置过滤器:
当我执行上面的代码时,它表现出与弹簧数据相同的行为!(即过滤器应用于查询而不是聚合。这是spring data es的错误吗?如果不是,那么,是否有任何其他方法可以用来以我想要的方式检索数据?
提前致谢。
java - Spring-data-elasticsearch 嵌套查询不起作用
人.java
汽车.java
使用 main 方法进行索引和搜索
索引工作正常,但搜索功能不起作用。
我得到以下输出:
人员名单:[]
请建议。提前致谢。
java - Elasticsearch 多个值匹配没有分析器
请原谅我对 ElasticSearch 的了解。我有一个 Elasticsearch 集合,其中包含以下文档:
这 3 个 json 文档在 ES 服务器中被索引。我没有提供任何分析器类型(也不知道如何提供一个:))我正在使用 spring data Elasticsearch 并执行以下查询来搜索区域为“Masovian Voivodeship”或“Federal District”的文档:
我期待它返回 2 次点击。但是,它会返回所有 3 个文档(可能是由于其中有第 3 个文档)。如何修改查询以便它可以执行精确匹配并且只提供 2 个文档?我正在使用以下方法:
我已经尝试过QueryBuilders.termsQuery
, QueryBuilders.inQuery
and QueryBuilders.matchQuery
(使用数组)但没有运气。
有人可以帮忙吗?提前致谢。
java - Spring Data Elasticsearch:具有相同文档的多个索引
我正在使用 spring-data-elasticsearch,一开始一切正常。
在我的模型中,我可以搜索产品。
所以,我的问题是 - 我在不同的索引中有相同的 Elasticsearch 类型,我想对所有查询使用相同的文档。我可以通过池处理更多连接 - 但我不知道如何实现这一点。
我想要这样的东西:
是否可以在运行时创建具有不同索引的存储库?
非常感谢马塞尔
java - 弹性搜索 Spring 数据乐观并发控制
根据Elastic Search
API
手册,它提供了一种使用乐观并发控制来处理并发的机制。
Elastic Search Java API通过
setVersion()
setVersionType()
setRetryOnConflict()
类中的方法UpdateRequest
。我们是否有任何API/configuration
参与Elastic Search Spring data
执行相同的操作?
我能想到的选项是覆盖中的save()
方法ElasticSearchRepository
并提供自定义实现。
在采取那条路线之前有没有更好的方法来处理这个问题。
使用的版本:Elastic Search 1.3.2
,Spring Data Elastic Search 1.1.0
java - 在 spring-data-elasticsearch java api 中使用两个过滤器进行搜索
我正在尝试在 spring-data-elasticsearch java api 中使用过滤器。我知道我可以使用 andFilter 基于这样的两个字段进行搜索
但是在代码中我有一些 if 条件,因此我不能直接使用 andFilter 来搜索......看看这个例子
当我以上述方式使用过滤器时,它不应用 and 关键字并且收到的结果不正确。我也尝试过这样做,但也无济于事
我应该如何确保在使用 if 条件时始终应用 AND 聚合
java - 使用注释的 Spring 数据弹性搜索审计
我正在使用 spring data elasticserch 将文档保存到 elasticsearch 中。以下是我的文档结构:
我使用@CreatedDate 和@LastModifiedDate 注释分别存储创建和修改日期。但是,当文档被存储createdDateTime
并modifiedDateTime
存储为 null 并且不会引发错误时。我是否需要进行任何进一步的更改才能完成这项工作?请注意,当我尝试将文档存储在 mongo 中时,相同的结构也有效。
提前致谢。
java - 通过 Spring-Data 在 Elasticsearch 中存储键值结构
我需要有关如何使用包含地图的 Spring-Data-Elasticsearch @Document Annotation 以最佳方式存储文档(Java POJO)的信息
就像在第一类中创建的 POJO 一样,我可以通过我的存储库将它存储在弹性搜索实例中。
这就是我向其中添加数据的方式,我想要灵活地添加哪些 JSON 字段,因为这对于我的客户端软件来说是灵活的。
我的问题是我还需要additionalFieldList 中标记为.not_analyzed 的字段。(fe additionalFieldList.url、additionalFieldList.user_agent)。我希望在我的 Map 上也具有与 String 上的 FieldIndex.not_analyzed 注释相同的行为,但当然仅适用于地图中的值。
但是当我尝试存储文档时这不起作用。我收到一个丑陋的异常。
如果有人知道一种方法,或者在 elasticsearch 中设计这样一个文档会更好,因为我在这个领域很新鲜,我很想听听一些评论。
之前的感谢和来自汉堡的灰色问候,
汤米齐格勒
java - Spring data elasticsearch:序列化joda时间
我正在使用 elasticsearchTemplate.index() 将文档索引到 elasticsearch 服务器。以下是我的文件的一部分:
保存文档时,日期以长格式(毫秒)保存,这是预期的行为。现在,在同一个文档中,我想使用 JodaTime 类型添加创建和修改的时间戳。以下是时间戳:
现在,当我保存文档时,这两个对象被存储为复杂对象(具有诸如 monthOfYear、dayOfMonth、hourOfDay 等组件)。但是,我希望这些字段像日期字段(即长时间戳)一样存储。我应该做哪些改变?
我曾尝试在我的应用程序中使用 jodaModule 将 ObjectMapper 定义为 bean,但它似乎并没有成功。有人可以帮忙吗?
谢谢