elasticsearch - 空值会为Elasticsearch完成建议者字段生成mapper_parsing_exception

标签 elasticsearch filter autosuggest completion

我有一个name字段,它是一个完成提示,索引编制会产生一个mapper_parsing_exception错误,指出value must have a length > 0

在此字段中确实有一些空值。我该如何容纳他们?
ignore_malformedpropertiesindex级别均无效。

我尝试在分析器中过滤出空字符串,并设置了最小长度:

PUT /genes
{
  "settings": {
  "analysis": {
      "filter": {
        "remove_empty": {
          "type": "length",
          "min": 1
        }
      },  
      "analyzer": {
        "keyword_lowercase": {
          "type": "custom",
          "tokenizer": "keyword",
          "filter": [
            "lowercase", 
            "remove_empty"
          ]
        }
      }
    }
  },
  "mappings": {
    "gene": {
        "name": {
          "type": "completion",
          "analyzer": "keyword_lowercase"
        }
      }
    }
  }
}

或过滤空字符串作为停用词:
    "remove_empty": {
      "type": "stop",
      "stopwords": [""]
    }

尝试将过滤器应用于名称映射会生成不受支持的参数错误:
"mappings": {
    "gene": {
        "name": {
          "type": "completion",
          "analyzer": "keyword_lowercase",
          "filter": "remove_empty"
        }
      }
    }
}

这种感觉应该很简单。有没有办法做到这一点?

谢谢!

最佳答案

我也遇到过同样的问题。经过一些研究,在我看来,当前唯一的选择是在索引之前更改数据(例如,将空值替换为一些虚拟的非空值)。

但也有个好消息。 GitHub上的exists问题,大约一个月前是resolved。计划在6.4.0版中发布。

关于elasticsearch - 空值会为Elasticsearch完成建议者字段生成mapper_parsing_exception,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48193721/

相关文章:

javascript - 在Underscore/Ramda/函数式语言/库中组合多个filter()谓词

iphone - 如何将夜视滤镜应用于 AVCaptureSession 预览层?

javascript - 如何使用多个链接过滤 AngularJS 中的列表

JavaFX TextField 自动建议

java - Elasticsearch : Combining multiple search results

mysql - Logstash:Elasticsearch 的未知设置 ‘“index”

curl - 映射索引Elasticsearch时间戳定制

ElasticSearch => 如何使用 update_by_query 更新部分文档

solr - Solr SuggestComponent 是否能够返回带状疱疹而不是整个字段值?

swift - 如何拥有一个显示不同uitableview建议的搜索栏