首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MapperParsingException [分析器[dbl_metaphone]未找到字段[语音])

MapperParsingException [分析器[dbl_metaphone]未找到字段[语音])
EN

Stack Overflow用户
提问于 2016-01-03 17:44:41
回答 1查看 1.1K关注 0票数 1

我在Elasticsearch集群上有一个索引,我想支持语音匹配。

这是我的要求:

代码语言:javascript
复制
curl -XPUT "http://localhost:9200/propertywebsites/_mapping/doc?pretty" -i -d '
{
"properties" : {
"phoneticbuilding" : {
"type" : "string",
"fields" : {
"phonetic" : {
"type" : "string",
"analyzer" : "dbl_metaphone"
}}}}
}
'

我收到了以下错误响应:

代码语言:javascript
复制
HTTP/1.1 400 Bad Request
Content-Type: application/json; charset=UTF-8
Content-Length: 116

{
  "error" : "MapperParsingException[Analyzer [dbl_metaphone] not found for field [phonetic]]",
  "status" : 400
}

有人知道为什么dbl_metaphone分析器不能识别语音字段吗?

我的elasticsearch版本是elasticsearch-1.7.2

更新1

我已经有了如下分析器

代码语言:javascript
复制
PUT myIndexName/
{
  "settings": {
    "analysis": {
      "filter": {
        "dbl_metaphone": {
          "type": "phonetic",
          "encoder": "double_metaphone"
        }
      },
      "analyzer": {
        "dbl_metaphone": {
          "tokenizer": "standard",
          "filter": "dbl_metaphone"
        }
      }
    }
  }
}

更新2

查询此请求

代码语言:javascript
复制
curl -XGET "http://localhost:9200/propertywebsites/_settings?pretty"

我得到以下答复:

代码语言:javascript
复制
{
  "propertywebsites" : {
    "settings" : {
      "index" : {
        "creation_date" : "1451838136296",
        "number_of_shards" : "5",
        "number_of_replicas" : "1",
        "version" : {
          "created" : "1070299"
        },
        "uuid" : "KVOuKVgGRBudsSplownrgg",
        "analsis" : {
          "filter" : {
            "dbl_metaphone" : {
              "type" : "phonetic",
              "encoder" : "double_metaphone"
            }
          },
          "analyzer" : {
            "dbl_metaphone" : {
              "filter" : "dbl_metaphone",
              "tokenizer" : "standard"
            }
          }
        }
      }
    }
  }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-03 17:49:42

"dbl_metaphone“是一个令牌过滤器,而不是分析器。您需要首先安装语音分析插件,然后使用它创建一个自定义分析器。在https://www.elastic.co/guide/en/elasticsearch/guide/current/phonetic-matching.html上可以找到更多信息。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34579570

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档