问题标签 [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.
java - 多个字段的短语匹配
这是我现在的做法:
..
.setQuery(
filteredQuery(
multiMatchQuery(String.format("*%s*", query), "name", "address", "phone")
.type(MultiMatchQueryBuilder.Type.CROSS_FIELDS),
geoDistanceFilter("location")
.distance(radius, DistanceUnit.KILOMETERS)
.geoDistance(GeoDistance.PLANE)
.point(latitude, longitude)
)
)
..
问题是它不搜索部分短语或部分单词..即使使用通配符..
我发现matchPhraseQuery
了,但它似乎只适用于一个字段。有没有其他方法可以实现这种搜索?
java - 从 Websphere 使用 Elasticsearch Java 客户端时出错
我有一个使用 elasticsearch 官方 java 客户端的 Web 应用程序。在使用 IBM JVM Java 7 在 Websphere 8.5.5 上使用该 Web 应用程序时,我收到以下错误。我尝试使用传输客户端和节点客户端。还尝试使用 Oracle JavaSE 7 和 8 作为 Elasticsearch 的 JVM。但没有任何结果。Elasticsearch 不在 IBM JVM 上运行,而 Websphere 仅在 IBM JVM 上运行。
有谁知道从 Websphere 上的应用程序中使用 elasticsearch 官方 java 客户端的方法?
以下是错误堆栈跟踪:
java - Elasticsearch Java API:创建 amd 重用节点
你好,
也许我对弹性搜索的内部缺乏一些了解。我想做的是创建一个嵌入式 ES 节点,但在我的应用程序的多个启动中保持索引的持久性。
这是我的启动代码(在每次应用程序启动时执行):
然后我做一些索引/查询,有时,应用程序会停止。现在,如果我重新启动应用程序,我的所有数据都会丢失,并且将在文件系统上创建一个新的空节点。
是否可以使用 Java API 重用以前创建的节点及其数据?
elasticsearch - 索引字段中的特殊字符
在使用查询字符串过滤器搜索电子邮件地址时,我遇到了一些有趣的行为:
如果我domain.com
作为查询传递(假设索引中有这样的值) - 结果很好,但是一旦我通过@domain.com
- 结果是空的。特殊符号有一些限制吗?
java - 从 Elasticsearch 获取必填字段
我的弹性搜索中有以下字段
我只想使用java api从elasticsearch中假设cpu_stat_s和memory_stat_s字段,我搜索了查询过滤器并且也做了
但我收到了所有字段而不是必填字段。
我可以通过获取所有字段然后使用 for 循环并从响应中获取源来做到这一点,但是如果有数十亿条记录,它会增加 CPU 时间。我是弹性搜索的新手,因此如果有人会很有帮助可以帮助我
java - 如何使用 java api for Elasticsearch 调用 Groovy 脚本
寻找指针以了解如何使用 java api 调用 Groovy 脚本。
test.groovy
想用 Java 翻译以下查询:
java - Spring data elasticsearch returns duplicate results
By default, I couldn't find a way to set from
attribute in Elasticsearch queries, so I extended the ElasticsearchTemplate
class to include one.
It returns results considering from
attribute now. But somehow, it is returning duplicate documents in the result.
It could be due to ResultMapping applied by the extended class.
rest - 弹性搜索索引定义被覆盖
我正在尝试使用以下 Java 代码创建弹性搜索索引
customMapping.json 看起来像这样
现在,在创建映射之后,如果我在 elasticsearch marvel 插件中运行以下命令
我明白了
这是准确的。
现在当我尝试摄取这些数据时
出于某种原因,popkDate 字段被索引为字符串,而不是日期。现在,如果我再看看
这次我明白了,
为什么要创建这个重复的映射?对于同一类型?请注意,如果我在没有 JAVA api 的情况下创建映射,即通过 curl 命令,则不会观察到此行为,并且 popkDate 字段按预期编制索引。为什么会这样?
请指教。
java - 如何根据要插入的文档在 Elasticsearch 中使用不同的分析器?
我的映射有 4 个字符串字段:
- “姓名”
- “信息”
- “语”
- “类型”
和 4 个自定义分析器:
- “english_custom_analyzer”
- “french_custom_analyzer”
- “spanish_custom_analyzer”
- “arabic_custom_analyzer”
我希望能够在使用语言字段插入文档时指定要使用的分析器。因此,如果语言是英语,我想对文档字段使用英语分析器,如果语言是法语,我想使用法语分析器。
我尝试创建一个名为“language_name_analyzer”的额外字段,在插入时使用分析器名称填充该字段,并将分析器名称设置为“language_name_analyzer”。但我得到这个错误:
谢谢
elasticsearch - QueryParsingException [[mobapp] 找不到 geo_point 字段 [location.position]
我使用以下方法创建索引:
我有这个索引
我正在尝试执行此查询:
我正进入(状态QueryParsingException[[mobapp] failed to find geo_point field [location.position]]; }