0

我的代码是

curl -XGET 'http://localhost:9200/web/_suggest?pretty' -d '
{ "brand-suggest": {"completion": {"field": "nameSuggest","size":   "5","context": { "private": "false" }}, "text": "sampl"}}'

尝试使用 elasticsearch 建议查询时出现错误。

"index" : "webpage",
      "shard" : 4,
      "status" : 500,
      "reason" : "BroadcastShardOperationFailedException[[tellofy][4] ];  nested: ElasticsearchException[failed to execute suggest]; nested: ElasticsearchIllegalArgumentException[suggester [completion] doesn't expect any context]; "
    }

出现上述错误的原因是什么。我无法找到该错误的原因。

4

1 回答 1

1

nameSuggestcompletion类型但没有context,因此您的建议查询不允许指定context

查看普通completion字段带上下文的字段之间的区别completion

如果您希望运行以下查询

curl -XGET 'http://localhost:9200/web/_suggest?pretty' -d '{
  "brand-suggest": {
    "completion": {
      "field": "nameSuggest",
      "size": "5",
      "context": {
        "private": "false"
      }
    },
    "text": "sampl"
  }
}'

您需要将nameSuggest字段的映射更改为此,即添加上下文配置部分:

{
  "type": "completion",
  "analyzer": "simple",
  "search_analyzer": "simple",
  "context": {
    "private": {
      "type": "category",
      "path": "private"
    }
  }
}
于 2016-08-18T10:26:32.353 回答