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ありますが がないため、suggest クエリで指定することはできません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 に答える