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

在ElasticSearch中创建索引时如何指定分析器

鲍理
2023-03-14
问题内容

我想指定一个分析器,命名它,并在创建索引时在映射中使用该名称。我迷路了,我的ES实例总是向我返回一条错误消息。

大致来说,这就是我想要做的:

"settings": {
  "mappings": {
    "alfedoc": {
      "properties": {
        "id": { "type": "string" },
        "alfefield": { "type": "string", "analyzer": "alfeanalyzer" }
      }
    }
  },
  "analysis": {
    "analyzer": {
      "alfeanalyzer": {
        "type": "pattern",
        "pattern":"\\s+"
      }
    }
  }
}

但这似乎行不通。ES实例总是返回一个错误,例如

MapperParsingException[mapping [alfedoc]]; nested: MapperParsingException[Analyzer [alfeanalyzer] not found for field [alfefield]];

我尝试将"analysis"字典的分支放在多个位置(在映射等内部),但无济于事。我想一个完整的示例(到目前为止还找不到)可以帮助我。可能我缺少了一些基本知识。


问题答案:

“分析”位于“设置”块中,在创建索引时位于“映射”块之前或之后。

"settings": {
    "analysis": {
        "analyzer": {
            "alfeanalyzer": {
                "type": "pattern",
                "pattern": "\\s+"
            }
        }
    }
},
"mappings": {
    "alfedoc": { ... }
}

这是一个很好的示例:示例1



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

  • 问题内容: 我有一个文档,其中包含许多我从未查询过的字段,因此我想关闭这些字段的索引以节省资源。我相信我需要禁用该字段,但是如何指定要对哪些字段建立索引呢? 问题答案: 默认情况下,所有字段也都在_all特殊字段内建立索引,该字段开箱即用地提供了所谓的catchall功能。但是,可以通过以下选项为映射中的每个字段指定是否要将其添加到_all字段: 上面的示例禁用了name字段的默认行为,该行为不会

  • 问题内容: 我需要为索引禁用自动索引创建,但需要允许另一个索引。如何仅通过Elasticsearch禁用特定索引的自动索引创建?我试过了 在elasticsearch.yml文件中,但似乎禁用了所有的所有自动索引。有人可以帮我吗? 问题答案: 除了true / false值之外,“ action.auto_create_index”有点复杂。我们可以使用索引名称中出现的模式进行识别,并可以指定是否

  • 我正在为我的硕士使用py elasticsearch dsl,我正在土耳其标题语料库中创建标题文档索引,我需要为土耳其语言实现一个自定义的小写分析器:https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-lowercase-tokenfilter.html#analysis-小写令牌过滤器 我试着这样做:

  • 我用cmd删除了映射 在我的配置文件中,我定义了如下索引:, 并尝试创建一个新的映射,但我得到了错误 {“error”:{“root_cause”:[{“type”:“index_not_found_exception”,“reason”:“no-this index”,“resource.type”:“index_or_alias”,“resource.id”:“logstash_log*”,“

  • 我正在阅读文档,碰巧阅读了多个索引的创建和在多个索引上搜索的能力,以及在Elasticsearch中搜索特定搜索的可能性。 例如,我有两个索引,如释放区和工作区。我可以通过给http://localhost:9200/_search?pretty=true搜索,这将在所有索引中搜索 我可以专门搜索http://localhost:9200/releasedArea,工作区/\u搜索?漂亮=真。 因