问题标签 [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 投票
1 回答
154 浏览

elasticsearch - elasticsearch嵌套文档查询

我是 elasticsearch 的新手,对如何进行过滤、查询和聚合有一些想法,但不知道如何解决下面的以下问题。我希望能够从下面显示的文档中仅查询公司的最新交货(日期和 crate_quantity)。我不知道该怎么做。有没有办法使用最大聚合从每个文档中只提取最近的交付?

0 投票
1 回答
6548 浏览

java - 带有过滤器的 Spring 数据 ElastiSearch 聚合

我正在尝试对按某些条件过滤的值执行聚合。我正在使用弹簧数据的 ElasticSearchTemplate.query() 方法也执行查询并在结果提取器中获取结果。我得到了正确的命中(即应用过滤器并且只检索与这些值匹配的文档。)。但是,对所有文档执行聚合。我相信聚合应该只应用于过滤值。以下是我正在使用的代码:

为了进一步调试问题,我编写了代码来执行查询,而不是使用 spring 数据。以下是代码:

令我惊讶的是,此查询正确执行,并且过滤器也应用于聚合。为了进一步分析,我浏览了elasticsearchtemplate的代码,发现它使用setPostFilter方法来设置过滤器。然后我修改了我的代码以这样设置过滤器:

当我执行上面的代码时,它表现出与弹簧数据相同的行为!(即过滤器应用于查询而不是聚合。这是spring data es的错误吗?如果不是,那么,是否有任何其他方法可以用来以我想要的方式检索数据?

提前致谢。

0 投票
2 回答
4400 浏览

java - Spring-data-elasticsearch 嵌套查询不起作用

人.java

汽车.java

使用 main 方法进行索引和搜索

索引工作正常,但搜索功能不起作用。
我得到以下输出:

人员名单:[]

请建议。提前致谢。

0 投票
1 回答
831 浏览

java - Elasticsearch 多个值匹配没有分析器

请原谅我对 ElasticSearch 的了解。我有一个 Elasticsearch 集合,其中包含以下文档:

这 3 个 json 文档在 ES 服务器中被索引。我没有提供任何分析器类型(也不知道如何提供一个:))我正在使用 spring data Elasticsearch 并执行以下查询来搜索区域为“Masovian Voivodeship”或“Federal District”的文档:

我期待它返回 2 次点击。但是,它会返回所有 3 个文档(可能是由于其中有第 3 个文档)。如何修改查询以便它可以执行精确匹配并且只提供 2 个文档?我正在使用以下方法:

我已经尝试过QueryBuilders.termsQuery, QueryBuilders.inQueryand QueryBuilders.matchQuery(使用数组)但没有运气。

有人可以帮忙吗?提前致谢。

0 投票
2 回答
8762 浏览

java - Spring Data Elasticsearch:具有相同文档的多个索引

我正在使用 spring-data-elasticsearch,一开始一切正常。

在我的模型中,我可以搜索产品。

所以,我的问题是 - 我在不同的索引中有相同的 Elasticsearch 类型,我想对所有查询使用相同的文档。我可以通过池处理更多连接 - 但我不知道如何实现这一点。

我想要这样的东西:

是否可以在运行时创建具有不同索引的存储库?

非常感谢马塞尔

0 投票
0 回答
905 浏览

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.2Spring Data Elastic Search 1.1.0

0 投票
1 回答
2896 浏览

java - 在 spring-data-elasticsearch java api 中使用两个过滤器进行搜索

我正在尝试在 spring-data-elasticsearch java api 中使用过滤器。我知道我可以使用 andFilter 基于这样的两个字段进行搜索

但是在代码中我有一些 if 条件,因此我不能直接使用 andFilter 来搜索......看看这个例子

当我以上述方式使用过滤器时,它不应用 and 关键字并且收到的结果不正确。我也尝试过这样做,但也无济于事

我应该如何确保在使用 if 条件时始终应用 AND 聚合

0 投票
0 回答
976 浏览

java - 使用注释的 Spring 数据弹性搜索审计

我正在使用 spring data elasticserch 将文档保存到 elasticsearch 中。以下是我的文档结构:

我使用@CreatedDate 和@LastModifiedDate 注释分别存储创建和修改日期。但是,当文档被存储createdDateTimemodifiedDateTime存储为 null 并且不会引发错误时。我是否需要进行任何进一步的更改才能完成这项工作?请注意,当我尝试将文档存储在 mongo 中时,相同的结构也有效。

提前致谢。

0 投票
2 回答
1996 浏览

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 中设计这样一个文档会更好,因为我在这个领域很新鲜,我很想听听一些评论。

之前的感谢和来自汉堡的灰色问候,

汤米齐格勒

0 投票
1 回答
1868 浏览

java - Spring data elasticsearch:序列化joda时间

我正在使用 elasticsearchTemplate.index() 将文档索引到 elasticsearch 服务器。以下是我的文件的一部分:

保存文档时,日期以长格式(毫秒)保存,这是预期的行为。现在,在同一个文档中,我想使用 JodaTime 类型添加创建和修改的时间戳。以下是时间戳:

现在,当我保存文档时,这两个对象被存储为复杂对象(具有诸如 monthOfYear、dayOfMonth、hourOfDay 等组件)。但是,我希望这些字段像日期字段(即长时间戳)一样存储。我应该做哪些改变?

我曾尝试在我的应用程序中使用 jodaModule 将 ObjectMapper 定义为 bean,但它似乎并没有成功。有人可以帮忙吗?

谢谢