当前位置: 首页 > 面试题库 >

使用Java API在Elasticsearch中创建索引并添加映射会丢失分析器错误

林元明
2023-03-14
问题内容

代码在Scala中。它与Java代码极为相似。

我们的地图索引器用于创建索引的代码:https :
//gist.github.com/a16e5946b67c​​6d12b2b8

上面的代码用于创建索引和映射的实用程序:https :
//gist.github.com/4f88033204cd761abec0

Java给出的错误:https :
//gist.github.com/d6c835233e2b606a7074

运行代码并获取错误后http://elasticsearch.domain/maps/_settings的响应:https
://gist.github.com/06ca7112ce1b01de3944

JSON文件:https :
//gist.github.com/bbab15d699137f04ad87
https://gist.github.com/73222e300be9fffd6380

附件是我正在加载的json文件。我已经确认它正在加载正确的json文件,并将其作为字符串正确输出到.loadFromSource和.setSource中。

有什么想法为什么即使在_settings中也找不到分析器?如果我通过curl运行这些json文件,它们可以正常工作并正确设置映射。


问题答案:

我用来创建索引的代码(可在此处找到:使用JavaAPI定义自定义ElasticSearchAnalyzer正在索引中创建设置,例如:

“ index.settings.analysis.filter.my_snow.type:” stemmer“,”

它在设置路径中有设置。

我将索引代码更改为以下内容以解决此问题:

def createIndex(client: Client, indexName: String, indexFile: String) {
  //Create index
    client.admin().indices().prepareCreate(indexName)
    .setSource(Utils.loadFileAsString(indexFile))
    .execute()
    .actionGet()
}


 类似资料:
  • 问题内容: 我正在努力完成索引创建这一简单任务,目标是使用分析器和字段映射创建索引。当我使用分析器创建索引时,我可以通过分析api调用与分析器通信,但是当我添加映射信息时,创建索引调用失败,并显示“字段[$ field]]找不到Analyzer [analyzer1]”,我创建了一个脚本来显示问题: 问题答案: 我相信您的问题是这些设置需要嵌套在JSON的一个节点内,而不是您所拥有的嵌套在一个节点

  • 问题内容: 我想指定一个分析器,命名它,并在创建索引时在映射中使用该名称。我迷路了,我的ES实例总是向我返回一条错误消息。 大致来说,这就是我想要做的: 但这似乎行不通。ES实例总是返回一个错误,例如 我尝试将字典的分支放在多个位置(在映射等内部),但无济于事。我想一个完整的示例(到目前为止还找不到)可以帮助我。可能我缺少了一些基本知识。 问题答案: “分析”位于“设置”块中,在创建索引时位于“映

  • 问题内容: 我有一个现有的Elasticsearch索引,我想添加一个分析器,但是当我执行此命令时 我得到一个错误 {“错误”:“ IndexAlreadyExistsException [[nuxeo]已经存在]”,“状态”:400} 所以我必须在添加或刷新同义词文件之前删除索引不是很聪明。添加分析器的简单方法是吗?还是至少要刷新它?谢谢 问题答案: 您需要先关闭索引,更新分析器设置,然后再打开

  • 问题内容: 嗨,我正在使用Elastic Search elasticsearch-0.90.2版本。我正在尝试使用jsonBuilder使用自定义分析器来映射分析器,同时创建索引时,它会抛出未找到分析器的异常。 设置 :- 映射:- 像这样创建索引: 例外情况: 任何人都可以告诉这种方法中的错误吗? 问题答案: 我找到了解决方案。在“设置”中,如果您使用“索引”而不是“设置”,那么它将正常工作。

  • 我使用的是弹性搜索版本7.1.0和NEST 6.7.0以及ElasticSearch.NET 6.7.0。当我试图创建索引时,我出现了一个错误。 这是我的代码,我在NEST和ElasticSearch.NET 6.4.0版上使用了相同的代码,并且运行良好 null 代码400来自:PUT/local_brainbank_index。servererror:type:mapper_parsing_e

  • 问题内容: 我使用以下命令通过请求创建索引: 但这返回以下错误: 我发送的json似乎有效。此错误的原因是什么? 我正在使用ES 2.2.0。 问题答案: 由于错误消息描述了自定义分析仪,例如 不是映射中选项的有效值。根据文档,它只能采用的值是 没有 不要将此字段值添加到索引中。使用此设置,该字段将不可查询。 not_analyzed 将字段值不变地添加到索引中,作为一项。这是所有支持此选项的字段