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" 
      } 
     } 
    } 
} 

我希望这有助于。