问题标签 [elasticsearch-java-api]

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 投票
0 回答
900 浏览

elasticsearch - Elasticsearch 客户端无法连接到 Elasticsearch 节点

我有一个服务器,它有一个公共 ip 和一个私有 ip,在该服务器上运行弹性搜索服务,私有 ip 是10.x.x.x,公共 ip 是159.x.x.x

但这里抛出java.net.NoRouteToHostException: No route to host的异常是代码

这是堆栈跟踪

在这里,我无法在日志中看到私有 IP,其中 10.xxx 我只能看到这个 10.17.0.8:9300,而且我不知道这个 IP 地址,elasticsearch 客户端代码和 elasticsarch 服务也在同一台服务器上运行,有人可以请指出我正在做的错误

0 投票
2 回答
3610 浏览

java - 使用 ElasticSearch 的 script_upsert 创建文档

根据官方文档更新 API - Upserts可以用来scripted_upsert在脚本中处理更新(对于现有文档)或插入(对于新文档)表单。问题是他们从不展示脚本应该如何做到这一点。Java - 更新 API没有关于 ScriptUpsert 使用的任何信息。

这是我正在使用的代码:

当“testUser”文档不存在时,我收到以下异常:
DocumentMissingException[[user][testUser]: document missing

如何使 scriptUpsert 从 Java 代码工作?

0 投票
0 回答
967 浏览

elasticsearch - ElasticSearch Java API 排序聚合

我有术语聚合,我需要按另一个字段(日期)对结果桶进行排序。或者我需要添加 2 个子聚合,其中最大(和热门)和最小(和热门)。

我没有找到任何允许我这样做的 API。

我想我可以为主要术语聚合添加最高命中的最大子聚合,并创建另一个具有最高命中子聚合的最小术语聚合,但这将是一项繁重的工作。

0 投票
2 回答
2567 浏览

java - Elasticsearch Java api - 使用 bulkProcessor 部分更新文档

我正在使用 Elasticsearch Java api 的 BulkProcessor 在索引中插入/更新/删除文档。以下方法适用于插入和删除

indexRequest用于更新索引中的部分文档。在elasticsearch索引中说,我有一个文档

是否可以仅更新文档中的价格属性,例如我想将价格更改为{"price":15}使用indexRequest或使用 api 中的任何其他方法

0 投票
1 回答
1324 浏览

json - ElasticSearch:线程“main”中的异常NoNodeAvailableException [配置的节点均不可用

我正在尝试使用 Java Bulk API 在 ElasticSearch 中创建文档。我使用 JSON 文件作为批量输入。当我执行时,我得到以下异常:

这是java代码。

0 投票
1 回答
1046 浏览

java - Elasticsearch 传输客户端连接

我正在使用连接到 Elasticsearch 的 Servlet 构建搜索 Web 应用程序。我对 Elasticsearch的传输模块有疑问。我正在使用实现 ServletContextListener 的类中的 TransportClient 打开与 Elasticsearch 的连接。下面是 ElasticsearchServletContextListener 类的代码。

现在,每当用户搜索查询时,它都会使用在 ServletContextListener 类中初始化的相同“客户端”连接。客户端连接可以同时处理多个请求吗?还是每个用户都需要单独的客户端连接来查询弹性搜索?谢谢您的帮助。

0 投票
1 回答
636 浏览

elasticsearch - ElasticSearch Java API 与 ElasticsearchTemplate

有了ElasticSearchTemplate我可以很容易地从一个简单的实体类中创建索引。假设我想保存 Book.java:

它足以使:

这可以通过纯 ES Java API 实现,而无需spring-data-elasticsearch对字符串(JSON)进行 and 操作吗?

0 投票
1 回答
317 浏览

elasticsearch - Elasticsearch- 将类型和 id 添加到 CreateIndexResponse

在创建索引时,可以使用:

但是,如何设置索引type,以及id只有一个title字段的这个源对象的?

编辑

当按照建议进行更改以添加两个文档时,我不断收到IndexAlreadyExistsException错误消息:

似乎prepareCreateandprepareIndex都创建了索引。但不允许设置所有必需的首选项含义:

  • 分片NR
  • 副本编号
  • 索引名称
  • 索引类型
  • 新文档 ID。
  • -

如何做到这一点?

0 投票
1 回答
313 浏览

elasticsearch - 无法使用 Settings 和 Source Java API 创建索引

使用 Java API 设置 Source 和 Settings 的唯一方法是使用这样的代码(这是一个只有一个 @test 方法的简单测试类):

这在我第一次运行时有效。但是当我第二次运行它时,我得到:

java.lang.IllegalStateException:无法加载 ApplicationContext

invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144) 引起:org .springframework.beans.factory.UnsatisfiedDependencyException:创建名为“bookServiceImpl”的bean时出错:通过方法“setBookRepository”参数表示的不满足依赖项0:创建名为“bookRepository”的bean时出错:调用init方法失败;嵌套异常是 org.springframework.beans.BeanInstantiationException:无法实例化 [org.springframework.data.elasticsearch.repository.support.SimpleElasticsearchRepository]:构造函数抛出异常;嵌套异常是 java.lang.IllegalArgumentException:在 com.intellij.rt.execution.application.AppMain.main(AppMain.java:144) 调用(Method.java:498) 原因:org.springframework.beans.factory.UnsatisfiedDependencyException:创建名为“bookServiceImpl”的 bean 时出错:通过方法'setBookRepository'参数表达的不满足的依赖关系0:创建名为'bookRepository'的bean时出错:调用init方法失败;嵌套异常是 org.springframework.beans.BeanInstantiationException:无法实例化 [org.springframework.data.elasticsearch.repository.support.SimpleElasticsearchRepository]:构造函数抛出异常;嵌套异常是 java.lang.IllegalArgumentException:在 com.intellij.rt.execution.application.AppMain.main(AppMain.java:144) 调用(Method.java:498) 原因:org.springframework.beans.factory.UnsatisfiedDependencyException:创建名为“bookServiceImpl”的 bean 时出错:通过方法'setBookRepository'参数表达的不满足的依赖关系0:创建名为'bookRepository'的bean时出错:调用init方法失败;嵌套异常是 org.springframework.beans.BeanInstantiationException:无法实例化 [org.springframework.data.elasticsearch.repository.support.SimpleElasticsearchRepository]:构造函数抛出异常;嵌套异常是 java.lang.IllegalArgumentException:UnsatisfiedDependencyException:创建名为“bookServiceImpl”的bean时出错:通过方法“setBookRepository”参数表示的不满足依赖项0:创建名为“bookRepository”的bean时出错:调用init方法失败;嵌套异常是 org.springframework.beans.BeanInstantiationException:无法实例化 [org.springframework.data.elasticsearch.repository.support.SimpleElasticsearchRepository]:构造函数抛出异常;嵌套异常是 java.lang.IllegalArgumentException:UnsatisfiedDependencyException:创建名为“bookServiceImpl”的bean时出错:通过方法“setBookRepository”参数表示的不满足依赖项0:创建名为“bookRepository”的bean时出错:调用init方法失败;嵌套异常是 org.springframework.beans.BeanInstantiationException:无法实例化 [org.springframework.data.elasticsearch.repository.support.SimpleElasticsearchRepository]:构造函数抛出异常;嵌套异常是 java.lang.IllegalArgumentException:springframework.beans.BeanInstantiationException:无法实例化 [org.springframework.data.elasticsearch.repository.support.SimpleElasticsearchRepository]:构造函数抛出异常;嵌套异常是 java.lang.IllegalArgumentException:springframework.beans.BeanInstantiationException:无法实例化 [org.springframework.data.elasticsearch.repository.support.SimpleElasticsearchRepository]:构造函数抛出异常;嵌套异常是 java.lang.IllegalArgumentException:[title] 的映射器与其他类型中的现有映射冲突:[mapper [title] 具有不同的 [store] 值];嵌套异常是 org.springframework.beans.factory.BeanCreationException:创建名为“bookRepository”的 bean 时出错:调用 init 方法失败;嵌套异常是 org.springframework.beans.BeanInstantiationException:无法实例化 [org.springframework.data.elasticsearch.repository.support.SimpleElasticsearchRepository]:构造函数抛出异常;嵌套异常是 java.lang.IllegalArgumentException: Mapper for [title] 与其他类型的现有映射冲突:[mapper [title] has different [store] values] at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredMethodElement.inject

为什么当我第二次运行它时这似乎是一个问题?

如何使用以下方法创建索引并添加两个示例文档:

  1. 分片NR
  2. 副本编号
  3. 索引名称
  4. 索引类型
  5. 新文档 ID。

    使用 Java API?


0 投票
1 回答
38 浏览

elasticsearch - 如何从 ClusterSearchShardsRequest 获取所有信息

我设计了以下代码来获取类似于_search_shardsES 中的 rest API 的信息:

但是,这往往不会初始化实际的clusterSearchShardsRequest.

如何clusterSearchShardsRequest为给定client和索引初始化?