问题标签 [elasticsearch-rest-client]
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 Java HighLevelRestClient如何创建not_analyzed索引?
我正在使用 HighLevelRestClient 7.4.0,我很好奇在使用 Index API 索引文档时如何创建 not_analyzed 字段。
问题是我正在尝试按标题实现电影搜索,如果我搜索“矩阵”,它会返回正确的结果,但如果我搜索“矩阵”,它会返回几乎所有包含“the”的电影标题(matchQuery 就是这种情况)。
我改为使用 termQuery,但现在当我搜索“矩阵”时,它返回正确的结果,当我搜索“矩阵”时,它什么也没找到,“矩阵”也是如此。
我猜问题是当我索引我的文档时,默认情况下会分析每个文本字段。如何创建 not_analyzed 索引?
现在我通过简单地将数据结构转换为带有 GSON 的 Json 来索引电影。
java - 从 Pub/Sub 到 ElasticSearch 的 Apache Beam 流式传输
我正在使用 Apache Beam 编写一个 java 流管道,它从 Google Cloud PubSub 读取消息,并将它们写入 ElasticSearch 实例。目前,我正在使用直接运行器,但计划是在 Google Cloud Dataflow 上部署解决方案。
首先,我编写了一个从 PubSub 读取并写入文本文件的管道,它可以工作。然后,我坐了 ElasticSearch 实例,这也有效。我用 curl 写了一些文档,这很容易。
然后,当我尝试使用 Beam 的 ElasticSearch 连接器执行写入时,我开始遇到一些错误。实际上,我得到ava.lang.NoSuchMethodError: org.elasticsearch.client.RestClient.performRequest
了,尽管我添加了对 pom.xml 文件的依赖项。
我正在做的基本上是这样的:
使用 DirectRunner,我可以连接到 PubSub,但是当管道尝试连接 ElasticSearch 实例时出现异常:
我在 pom.xml 中添加的是:
我被这个问题困住了,我不知道如何解决它。如果我使用 JestClient,我可以毫无问题地连接到 ElasticSearch。
你有什么建议吗?
elasticsearch - ElastifcSearch UpdateByQueryRequest 从 6.2 到 7.4.2
我必须将我们的 ES 从 6.2(TCP 客户端)升级到 7.4.2(REST API)
而且我有一点问题UpdateByQueryRequestBuilder
,看起来需要更改为UpdateByQueryRequest
(doc)。旧代码如下所示:
正如我所写,我理解UpdateByQueryRequestBuilder
(使用最旧的客户端)应该被替换,UpdateByQueryRequest
但是这个新的 API 没有filter
方法(只是setQuery
将替换当前的查询在链式案例中......)
那么问题来了,我应该如何用最新的 ES REST API 替换这段代码(或链接查询)?
java - 从 6.8.X 升级到 7.5.X 时从 RestHighLevelClient 获取 Elasticsearch TotalHits
我正在将我的 Elasticsearch 集群从 6.8.X 升级到 7.5.X。我有这个突破性的变化;基本上在 REST 响应中,有一个{hits: {total: { value: 123 } } }
对象而不是一个{hits: { total: 123 } }
int 值。
Elasticsearch 提供了一个可以添加到搜索中的参数rest_total_hits_as_int
;但是,我无法弄清楚如何在由它们的 javaRestHighLevelClient
或它们的SearchRequest
对象格式化的查询上设置它。(我目前正在使用 ES 6.8.0 库。)
当我从 6.8 客户端向 7.5 集群发送请求时,我总是得到0
总点击数。当我从 7.5 客户端向 6.8 集群发送请求时出现错误。(不向后兼容。)
是否有我缺少的迁移路径?
spring-boot - 通过 Elasticsearch REST 客户端对文档进行索引时引发错误
我正在使用带有 Elasticsearch REST 高级客户端的 Spring Boot 应用程序。在已创建的索引中索引文档时customer
,我面临以下问题:
java.lang.IncompatibleClassChangeError: Found interface org.elasticsearch.common.bytes.BytesReference, but class was expected
我正在使用以下代码索引文档:
在这行代码中抛出了上述错误:
IndexResponse indexResponse = client.index(indexRequest, RequestOptions.DEFAULT);
错误的堆栈跟踪是:
elasticsearch - 如何在 elasticsearch-6.4.0.jar 中使用 Count API 获取匹配数据的数量
我需要使用 REST API 从 ElasticSearch 中获取匹配数据的数量。目前我正在使用 elasticsearch-6.4.0.jar 来编写 API。不幸的是,我在这个版本中找不到 CountAPI。
此外,我尝试使用旧版本的 jar (elasticsearch-2.4.0.jar)。在那里我可以看到 CountRequest 和 CountResponse 类。这个类帮助我们获取计数。
但是 2.4.0 是非常旧的版本。因此,您能否帮我在 elasticsearch-6.4.0.jar 中找到已弃用的版本
spring-boot - 如何在 Spring Boot 中编写以下弹性搜索通配符查询?
数据库:弹性搜索
字段名称:“标签”
数据类型:字符串
问题:如何在tag
带有通配符的字段中执行搜索?
我尝试了以下(在 Kibana 中):
用户要求:{ "tag" : [ "Attendance", "Employee" ] }
这很成功,但我不知道如何在 Spring Boot 中执行相同的操作。
我与以下人员一起工作:
但这只是针对单个字段,我需要一个动态字段,其中用户输入的大小和值应该不同。
有人可以指导我吗?
java - 使用 RestClient 从 Scala 中的 elasticsearch 中删除文档
我正在尝试从年龄(索引的字段)大于 50 的索引中删除文档。所以基本上我正在尝试编写范围查询。我已经从 Scala 成功连接到 ElasticSearch,而且我还可以删除整个索引。但我无法编写范围查询。有人可以帮我写一个范围查询,以从 scala 的索引中删除文档。下面是我删除整个索引的代码片段。我在 Java 中看到了很多示例,但我需要 SCALA 中的解决方案。
java - 在 Spring Boot 中找不到 Elasticsearch 方法
我已经被这个问题困扰了一段时间,感谢您提供任何帮助。我正在运行2.2.0
带有 ElasticSearch 高级 REST 客户端版本的Spring Boot 版本,6.4.3
并使用3.2.0
Spring-Data-Elasticsearch 版本的版本。我收到以下错误。我尝试了以下尝试来修复,但没有一个。
- 多次更改 Spring Boot 版本
- 多次更改 ES 版本
- 我已经清除了我的 .m2 文件夹并多次重新下载了 maven 依赖项。
我在下面遇到的问题是
试图调用不存在的方法。尝试是从以下位置进行的:
org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate.putMapping(ElasticsearchRestTemplate.java:292)
以下方法不存在:
org.elasticsearch.client.IndicesClient.putMapping(Lorg/elasticsearch/action/admin/indices/mapping/put/PutMappingRequest;Lorg/elasticsearch/client/RequestOptions;)Lorg/elasticsearch/action/support/master/AcknowledgedResponse;
该方法的类 org.elasticsearch.client.IndicesClient 可从以下位置获得:
jar:file:/Users/user/.m2/repository/org/elasticsearch/client/elasticsearch-rest-high-level-client/6.4.3/elasticsearch-rest-high-level-client-6.4.3.jar! /org/elasticsearch/client/IndicesClient.class
它是从以下位置加载的:file:/Users/user/.m2/repository/org/elasticsearch/client/elasticsearch-rest-high-level-client/6.4.3/elasticsearch-rest-high-level-client- 6.4.3.jar
行动: 更正您的应用程序的类路径,使其包含一个兼容的 org.elasticsearch.client.IndicesClient 版本
我的POM在下面
任何帮助表示赞赏。我确信它必须处理兼容性问题,但不确定是哪个。谢谢大家!
更新
通过将我的 elasticsearch 版本更改为6.7.0
. 但现在我收到以下错误
我的 POM 现在也如下所示。