0

如何批量插入建议

这是映射

PUT /myindex/autocomplete/_mapping
{
   "autocomplete": {
      "properties": {
         "name": {
            "type": "string"
         },
         "suggest": {
            "type": "completion",
            "index_analyzer": "simple",
            "search_analyzer": "simple",
            "payloads": true
         }
      }
   }
}

如果我一一惰性化,这里有一些有效的数据

POST /myindex/autocomplete/
{
   "name": "Nevermind",
   "suggest": {
      "input": [
         "Nevermind",
         "Nirvana"
      ],
      "output": "Nirvana - Nevermind",
      "payload": {
         "tip": 1,
         "oid": 1
      },
      "weight": 34
   }
}

如何批量插入建议?

PUT /myindex/autocomplete/_bulk
{
   "name": "Nevermind",
   "suggest": {
      "input": [
         "Nevermind"
      ],
      "output": "Nirvana - Nevermind",
      "payload": {
         "tip": 1,
         "oid": 1
      },
      "weight": 34
   }
}
{
   "name": "Bleach",
   "suggest": {
      "input": [
         "Bleach"
      ],
      "output": "Nirvana - Bleach",
      "payload": {
         "tip": 2,
         "oid": 3
      },
      "weight": 20
   }
}
4

1 回答 1

1

您需要根据批量操作的预期格式化您的数据,即一行用于“索引”操作,另一行使用 JSON 源,全部由换行符分隔(包括最后一行):

curl -XPOST localhost:9200/myindex/autocomplete/_bulk -d '
{ "index":{"_id": 1} }
{ "name": "Nevermind",  "suggest": { "input": [ "Nevermind" ], "output": "Nirvana - Nevermind", "payload": {  "tip": 1, "oid": 1 }, "weight": 34 } }
{ "index":{"_id": 2} }
{ "name": "Bleach",  "suggest": { "input": [ "Bleach" ], "output": "Nirvana - Bleach", "payload": {  "tip": 2, "oid": 3 }, "weight": 20 } }
'
于 2015-10-22T05:12:11.357 回答