- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在从 spring 数据 Elasticsearch 3.2.X 迁移到 4.0.0。
我一直依赖于通过使用现在已弃用的低级函数 通过原始 SearchResponse 类获取内部点击结果org.springframework.data.elasticsearch.core.ElasticsearchOperations.query(SearchQuery query, ResultsExtractor resultsExtractor);
https://docs.spring.io/spring-data/elasticsearch/docs/4.0.0.RELEASE/reference/html/#elasticsearch-migration-guide-3.2-4.0
基本上我所做的是创建自定义的 resultExtractor,它将公开低级别的 SearchResponse,以便我可以提取内部点击结果。
现在 4.0.0 版本不再存在该功能,ElasticSearchOperations 和 ElasticSearchRestTemplate 都使用称为 SearchHits 的新结果类,AFAIK 不存储内部命中信息。
除了直接使用 restHighLevelClient(这当然是不可取的,因为我会丢失对象映射和东西)之外,我能想到的解决方法是扩展 ElasticSearchRestTemplate 并基本上创建 的新实现。 search(Query query, Class clazz, IndexCoordinates index) 这将返回 SearchHits 和原始搜索响应(类似于我的自定义 ResultExtractor 过去所做的)。
之后,由于所有 api 返回页面实例已被弃用,我现在不得不依赖 SearchHitSupport.searchPageFor(SearchHits searchHits, @Nullable Pageable pageable) 获得通常的分页功能。
我觉得这不是很简单和干净的解决方案,当然感觉更像是一种解决方法。在 4.0.0 版本中,是否有更直接的方法来获取 innerHitsResult 并将结果内容映射到页面?
最佳答案
有一个open issue关于inner_hits。返回inner_hits 应该在SearchHit<T>
中完成类,而不是通过公开内部 Elasticsearch 数据。
至于分页:当你有SearchHits<T>
对象作为使用 Pageable
的查询的结果,你可以打电话
SearchHits<Entity> searchHits = operations.search(query, Entity.class);
SearchPage<Entity> page = SearchHitSupport.searchPageFor(searchHits, query.getPageable)
SearchPage
实现
Page
界面。
关于java - 从 Spring Data Elastic Search 4.0.0 的 SearchHits 类获取 InnerHits 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62115096/
我的 elasticsearch 索引中有几千个文档。文档有一些嵌套的集合。其中之一是“变体”的嵌套集合。其中一个文档的 JSON 结构是: { "id" : 1, "name": "loll
我正在使用 NEST 2 客户端对我们的 Elasticsearch 执行查询。 我们有一个查询嵌套文档数组,并使用 .InnerHits() 在结果中包含嵌套文档的匹配项。 有没有办法将 Inner
我目前正在从 spring 数据 Elasticsearch 3.2.X 迁移到 4.0.0。 我一直依赖于通过使用现在已弃用的低级函数 通过原始 SearchResponse 类获取内部点击结果or
我是一名优秀的程序员,十分优秀!