问题标签 [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.
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 服务也在同一台服务器上运行,有人可以请指出我正在做的错误
java - 使用 ElasticSearch 的 script_upsert 创建文档
根据官方文档更新 API - Upserts可以用来scripted_upsert
在脚本中处理更新(对于现有文档)或插入(对于新文档)表单。问题是他们从不展示脚本应该如何做到这一点。Java - 更新 API没有关于 ScriptUpsert 使用的任何信息。
这是我正在使用的代码:
当“testUser”文档不存在时,我收到以下异常:
DocumentMissingException[[user][testUser]: document missing
如何使 scriptUpsert 从 Java 代码工作?
elasticsearch - ElasticSearch Java API 排序聚合
我有术语聚合,我需要按另一个字段(日期)对结果桶进行排序。或者我需要添加 2 个子聚合,其中最大(和热门)和最小(和热门)。
我没有找到任何允许我这样做的 API。
我想我可以为主要术语聚合添加最高命中的最大子聚合,并创建另一个具有最高命中子聚合的最小术语聚合,但这将是一项繁重的工作。
java - Elasticsearch Java api - 使用 bulkProcessor 部分更新文档
我正在使用 Elasticsearch Java api 的 BulkProcessor 在索引中插入/更新/删除文档。以下方法适用于插入和删除
可indexRequest
用于更新索引中的部分文档。在elasticsearch索引中说,我有一个文档
是否可以仅更新文档中的价格属性,例如我想将价格更改为{"price":15}
使用indexRequest
或使用 api 中的任何其他方法
json - ElasticSearch:线程“main”中的异常NoNodeAvailableException [配置的节点均不可用
我正在尝试使用 Java Bulk API 在 ElasticSearch 中创建文档。我使用 JSON 文件作为批量输入。当我执行时,我得到以下异常:
这是java代码。
java - Elasticsearch 传输客户端连接
我正在使用连接到 Elasticsearch 的 Servlet 构建搜索 Web 应用程序。我对 Elasticsearch的传输模块有疑问。我正在使用实现 ServletContextListener 的类中的 TransportClient 打开与 Elasticsearch 的连接。下面是 ElasticsearchServletContextListener 类的代码。
现在,每当用户搜索查询时,它都会使用在 ServletContextListener 类中初始化的相同“客户端”连接。客户端连接可以同时处理多个请求吗?还是每个用户都需要单独的客户端连接来查询弹性搜索?谢谢您的帮助。
elasticsearch - ElasticSearch Java API 与 ElasticsearchTemplate
有了ElasticSearchTemplate
我可以很容易地从一个简单的实体类中创建索引。假设我想保存 Book.java:
它足以使:
这可以通过纯 ES Java API 实现,而无需spring-data-elasticsearch
对字符串(JSON)进行 and 操作吗?
elasticsearch - Elasticsearch- 将类型和 id 添加到 CreateIndexResponse
在创建索引时,可以使用:
但是,如何设置索引type
,以及id
只有一个title
字段的这个源对象的?
编辑
当按照建议进行更改以添加两个文档时,我不断收到IndexAlreadyExistsException
错误消息:
似乎prepareCreate
andprepareIndex
都创建了索引。但不允许设置所有必需的首选项含义:
- 分片NR
- 副本编号
- 索引名称
- 索引类型
- 新文档 ID。 -
如何做到这一点?
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
为什么当我第二次运行它时这似乎是一个问题?
如何使用以下方法创建索引并添加两个示例文档:
- 分片NR
- 副本编号
- 索引名称
- 索引类型
新文档 ID。
使用 Java API?
elasticsearch - 如何从 ClusterSearchShardsRequest 获取所有信息
我设计了以下代码来获取类似于_search_shards
ES 中的 rest API 的信息:
但是,这往往不会初始化实际的clusterSearchShardsRequest
.
如何clusterSearchShardsRequest
为给定client
和索引初始化?