0

我正在轉換1.7.5 => 5.4.2 但完成提示輸出消失。如何完成提示Elasticsearch 5.x

前)

居1.7.5推薦映射

{ 
    "test_suggest":[ 

     { 
      "input": "bigbang", 
      "payload": { 
       "type": "foo", 
       "id": "A", 
       "name": "BIGBANG" 
      }, 
      "weight": 111, 
      "output": "BIGBANG" 

     }, 
     { 

      "input": "빅뱅", 
      "payload": { 
       "type": "foo", 
       "id": "B", 
       "name": "BIGBANG" 
      }, 
      "weight": 111, 
      "output": "빅뱅" 

     }, 
     { 

      "input": "qlrqod", 
      "payload": { 
       "type": "foo", 
       "id": "B", 
       "name": "BIGBANG" 
      }, 
      "weight": 111, 
      "output": "빅뱅" 
     } 
    ] 
} 

我去這個

  • 搜索 - >導致
  • BIGBANG - > BIGBANG
  • 빅뱅 - >빅뱅
  • qlrqod - >빅뱅

5.4.2建議映射

{ 
    "test_suggest": [ 

      { 
       "input": "bigbang", 
       "weight": 111 
      } 
      , 
      { 
       "input": "빅뱅", 
       "weight": 111 
      } 
      , 
      {     
       "input": "qlrqod", 
       "weight": 111, 
      } 
     ], 
     "KEYWD" : "BIGBANG", 
     "TYPE": "foo", 
     "ID": "A" 
} 

我該怎麼辦呢?

回答

0

Elasticsearch的完成建議從5.0更改。 索引建議條目時指定輸出的支持已被刪除。現在建議結果條目的文本始終是建議輸入的未分析值(與在5.0之前的索引中建立索引建議時未指定輸出相同)。 所以你需要添加output作爲身體的suggest鑰匙的兄弟場。
這是它應該如何看起來像:

映射:

{ 
    "mappings": { 
     "<type>" : { 
      "properties" : { 
       "suggest" : { 
        "type" : "completion" 
       }, 
       "title" : { 
        "type": "keyword" 
       } 
      } 
     } 
    } 
} 

不要忘記你的索引類型,以取代<type>

索引:

/<index_name>/<type_name> 

{ 
    "suggest" : { 
     "input": ["bigbang"], 
     "weight" : 1 
    }, 
    "output": "BIGBANG" 
} 

這裏,字段名output可以被任何東西所取代,這是你的文件剛剛元數據。

查詢:

/<index_name>/_search 

{ 
    "suggest": { 
     "show-suggest" : { 
      "prefix" : "bigbang", 
      "completion" : { 
       "field" : "suggest" 
      } 
     } 
    } 
} 

我希望這有助於。