问题标签 [elasticsearch-jest]
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.
java - _msearch 与 _search 性能
_msearch
用于一次进行多次搜索。仅此一项就可以提高性能,因为它减少了网络开销。现在我_msearch
像_search
端点一样使用单个查询。我想为将来的批处理建立这种机制。在我利用批处理之前,这会带来开销吗?行为是否与单个查询_msearch
完全相同?_search
java - 弹性搜索 1.5 地理点问题
我们正在尝试在 ES 1.5 中进行地理距离排序。我们对 geo_point 类型的映射如下。
我们添加索引数据如下
当我们在文档被索引后检查弹性搜索的映射时,映射是不同的。
我们无法按地理距离排序,因为映射发生了变化。
java - NoClassDefFoundError: org/elasticsearch/index/query/QueryBuilder
我有一个使用elasticsearch、Jest 和javax servlet 的项目。我的 pom.xml 文件如下所示:
我正在从 Eclipse 运行 Tomcat Apache 8.5.6。当我尝试运行服务器时,我收到错误“本地主机上的服务器 Tomcat v8.5 服务器无法启动”。堆栈跟踪如下所示:
我看到“java.lang.NoClassDefFoundError: org/elasticsearch/index/query/QueryBuilder”这一行——>但我可以通过扩展 Maven 依赖项来查看 org.elasticsearch.index.query.QueryBuilder 类。
我的猜测是错误出现在 pom.xml 文件中,但我无法准确找出阻止服务器启动的原因。
java - JEST 弹性搜索 rest java API 中的 SSL 证书合并问题
我在使用 Jest API 连接到 elasticsearch(ELK) 时遇到问题。我正在为 ELK 寻找基于 rest 的 java API,它支持 SCROLL 和 SCAN,还支持基于证书的身份验证。
我发现 Jest 和 Flummi 是可用的。
由于 Jest 很受欢迎并且有更多的支持,我正在尝试使用它。
我的 ELK db 需要一个用于身份验证的证书,我已在个人证书中安装了该证书。
我的问题是如何使用 Jest Client 对证书进行 Http 请求?我找到了一些代码,但它对我有帮助。我的代码如下。
请就这个问题提出建议。
java - 第一次执行操作后 Jest 客户端关闭
我创建了一个 AWS Lambda 包 (Java),其中包含一个从 Amazon S3 读取一些文件并将数据推送到 AWS ElasticSearch Service 的函数。由于我使用的是 AWS Elastic Search,因此我无法使用传输客户端,在这种情况下,我正在使用 Jest 客户端通过 REST 推送。问题在于 Jest 客户端。
这是我的 Jest 客户端实例:
由于 AWS Elasticsearch 域受 IAM 访问策略的保护,因此我签署请求以使它们获得 AWS 的授权(此处为示例)。我使用 POJO 来索引文档。
我面临的问题是我无法使用 jest 客户端实例执行多个操作。例如,如果我先创建索引:
后来,我想,例如做一些批量索引:
只有第一个动作会被执行,第二个动作会失败。这是为什么?是否可以执行多个操作?
Morover,使用提供的代码,当我想索引文档时,我无法执行超过 20 个批量操作。基本上,大约 20 个就可以了,但除此之外,client.execute(bulkIndexBuilder.build());
just 不执行并且客户端关闭。
任何帮助或建议都将不胜感激。
更新:AWS ElasticSearch 似乎不允许连接到单个节点。只需在 Jest 客户端中关闭节点发现即可.discoveryEnabled(false)
解决所有问题。这个答案有帮助。
java - 弹性搜索 Jest 客户端中的 HTTPS 支持
我正在尝试通过 HTTPS 连接HTTPS/SSL 支持来连接 elasticsearch 。
代码如下
我能够使用 http 连接进行连接。但是当我尝试使用 HTTPS 连接时,我收到以下错误
如果您发现此错误,请告诉我。代码有问题吗?
java - Elasticsearch JEST 日期序列化 java
我正在使用 ES Jest。我可以进行搜索并获得回复。但是当我使用Date
属性进行序列化时,我null
在序列化后得到了响应。
以下是我的ES文档索引和搜索结果类:
我有以下日期序列化代码:
来自 ES 的回应:
我的序列化代码:
序列化后,我得到response = null
如果我从中删除 date 属性indexDocument
,我可以看到序列化的响应。但是,使用 date 属性,它不起作用。什么地方出了错?
java - 如何将 Jest SearchResult 命中投射到域对象
我正在使用 Jest 来查询 Elasticsearch,到目前为止它一直很棒。Jest 的文档说:
结果可以转换为域对象列表;
...并显示此示例:
getSourceAsObjectList
已弃用,我正在使用:
... 不可变生成类在哪里ImmutableConceptDocument
-否则非常简单的 POJO,其属性命名为我在source
搜索结果下看到的。
但是,当我使用上面的行时,我没有得到源属性映射,我得到了其他细节,比如,score
等等。type
index
我错过了什么?域类是否需要具有特定的 Jest 注释或类似的东西?
我在单元测试中也看不到任何好的例子。这个映射到Object.class
并且没有向我显示映射示例。
这是不可变的类:
...Category
枚举类型在哪里。
java - JestClient 建议不要使用 java.lang.NoSuchMethod 错误
对于所有搜索,Jest-client 使用 uri 进行初始化,如下所示:
如何使用 uri 初始化客户端,如下所示?
我在 Ipas JestClient 和一个单词的方法中使用以下代码:
但是,它会产生错误
java.lang.NoSuchMethodError: io.searchbox.client.http.JestHttpClient.getElasticSearchServer()Ljava/lang/String; ' 在 client.execute(建议)期间。
在调试期间,我复制了建议变量的值并将其粘贴到Sense中,它按预期工作。
我正在使用以下 Maven 依赖项_all/_search
正在运行的弹性版本是 5.0.1,对于 Suggest,已导入以下依赖项。
有什么建议么?
elasticsearch - 没有 JSON 查询的 Jest 客户端中的聚合
在探索 elasticsearch 中的聚合时,我发现聚合功能可以通过基于 HTTP 的 JEST 客户端中的 JSON 查询来实现,但不能在基于 TCP 的 Java 客户端中实现。
我正在使用 Jest Client 并通过运行良好的查询字符串实现聚合。但我觉得随着过滤器的增加,它变得非常麻烦。我想知道除了在 JEST 客户端中使用 JSON 查询(类似于 TCP 客户端中的聚合构建器)之外,是否有其他方法可以实现聚合,我们如何实现它?