问题标签 [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 - 如何设置 index.routing.allocation
我如何设置index.routing.allocation.*
设置,例如:
test
使用 Java API的索引?
elasticsearch - 如何查询文档的特定分片
我可以使用首选项来查询 ES shard #2 以获取带有 id 的推文文档,1
其 URL 如下所示:
如何使用 Java API 做到这一点?
编辑这个:
列出文档,而以下两者都返回 NPE:
和
编辑2:
那为什么如果我只有两个分片用于这个索引
我得到 NPE 和
我得到“找到:假”:
和
得到实际的文件id1
和完整的_source
?
EDIT3: 对于:
我得到以下回复
java - 如何将 Java 应用程序连接到 Elasticsearch?
我正在开发一个 Java 应用程序,我需要将我的应用程序连接到 Elasticsearch 服务器。
我是 Java 和 Elasticsearch 的新手,不确定如何继续。我找不到任何有意义的文档。
任何人都可以请指导我。提前致谢。
java - 没有应用弹性搜索过滤器?
我正在使用 elasticSearch 来查找系列中的下一集。为此,我首先过滤比上一集更高season
或更高episode
的剧集,然后season
按episode
升序排序,并将结果限制为 1:
在运行时将过滤器提取为字符串会给我以下查询:
这令人困惑地导致:
(为简洁起见,删除了一些字段)
请注意,episode
结果season
都是 1,即使过滤器指定(我认为)其中一个必须分别高于 2 和 1。
我还尝试反转排序,而是降序排序,这导致了一个完全不同系列的剧集,所以似乎sameSeriesFilter
也没有应用,但是排序似乎有效!
无论如何...这里发生了什么?
更新:忘了提,这是 ES 的 v.1.7。
我已经设法让它工作了,但是发生了一些神秘的事情。一时兴起,我添加了一个空的 matchAll 查询,它应该什么都不做,但由于某种原因使一切正常。我的过滤器现在已正确应用。ES应该这样工作吗?如果是这样,为什么?新的工作代码:
java - 如何使用 Java 传输客户端连接到 ElasticSearch?
我正在关注 Java 客户端上的 ElasticSearch 文档。我已经启动了 ElasticSearch,我可以使用 Rest API 与之交互。我想使用 Java 客户端,到目前为止,我有一个这样的主程序:
}
在 Java 日志中,我可以看到与 127.0.0.1:9300 的连接。但是在“准备索引”命令之后,我没有看到任何错误,也没有打印任何内容(我有一些系统输出命令)。在 ElasticSearch 日志中也没有任何关系。当我使用 Rest API 创建索引时,我可以在日志中看到这一点。
elasticsearch - 更新嵌套字段时出错
您好我正在使用 elasticsearch java API 来更新带有脚本的文档。但我得到了例外
以下是 ES 中的现有文档
我想更新“内容”字段如下
当我使用 REST 调用 (localhost:9200/index1/type1/1/_update) 进行更新时,它工作正常。我在 java API prepareUpdate 中遇到错误。
我有 3 个 java 类。DTO 类具有 Content 对象 Content 类具有 Metadata 对象和 contentId,只要 Metadata 类具有标题(字符串)和持续时间(长)。
下面是要更新的代码
dto 是 DTO 类的对象,并相应地设置值。
请帮忙。
elasticsearch - Elasticsearch Java API:文档计数的聚合过滤器
我想实现一个只返回频率高于某个阈值的文档的聚合。
例如,这里是获取所有文档及其计数的聚合
所以这给了我每个值的文档计数column_name
现在,可以说我不想要所有这些文件。我只想要那些doc_count
大于25
所以理想的结果是
[{"doc_count":30,"key":"val1"},{"doc_count":29,"key":"val2"}]
我如何将这样的过滤器应用于我的聚合?我正在查看FilterBuilders
和过滤聚合,但它们用于对文档中的任何值应用过滤器。例如,我可以应用过滤器来仅获取val1 == xza
文件column_name
但这不是我要找的。我想在应用doc_cunt
聚合后为值应用阈值。
这可能吗?我正在使用 elasticsearch java api 版本 1.7.2
java - 部分变化数组 ElasticSearch
我使用 ElasticSearch 2.3.3。现在我需要更新索引中文档中的许多数组之一。这是 ElasticSearch 中文档的一部分:
我尝试在 Java-API 上使用“通过合并文档更新”功能,如下所示:
但这只是重写整个数组,而我需要更新数组中的一些字段。有什么办法吗?
elasticsearch - 在elasticsearch java中的字符串索引字段中搜索单词
我有一个格式为 "SS,SX,US,IND,CND,TN" 的字符串字段国家,并且我有一个输入字符串字段countryCode,其格式为"SS"。如何在弹性搜索中查询给定国家代码在国家/地区的所有记录?我尝试了和查询,但没有得到想要的结果。match
match_phrase
Query.must(QueryBuilders.matchPhraseQuery("国家", countryCode))
java - Elasticsearch java api 用于带过滤器的全文搜索
我想对字符串“user”进行全文搜索,该字符串可以匹配我文档中的任何字段,然后应用过滤器,以便我只获得 x 字段值为“abc”或“xyz”的记录。
摆弄 Sense ,以下请求满足我的要求。
但是,我想要一个 java api 来做上面的事情。我已经搜索了弹性文档和 SO,但没有找到我正在寻找的东西,因为 QueryBuilders.filteredQuery 之类的 api 似乎已被弃用。我目前使用的是 2.3.4,但可以升级。