2016-08-27 33 views
6

我正在使用elasticsearch完成建议器,并得到了一些问题,总是会产生类似的结果。elasticsearch完成建议器产生重复结果

说我用下面的语句进行搜索:

"my_suggestion": { 
>   "text": "ni", 
>   "completion": { 
>    "field": "my_name_for_sug" 
>   } 
>  } 

,并得到以下结果:

"my_suggestion" : [ { 
    "text" : "ni", 
    "offset" : 0, 
    "length" : 2, 
    "options" : [ { 
     "text" : "Nine West", 
     "score" : 329.0 
    }, { 
     "text" : "Nine West ", 
     "score" : 329.0 
    }, { 
     "text" : "Nike", 
     "score" : 295.0 
    }, { 
     "text" : "NINE WEST", 
     "score" : 168.0 
    }, { 
     "text" : "NINE WEST ", 
     "score" : 168.0 
    } ] 
    } ], 

所以,问题是我怎么能合并或聚集,如“NINE WEST”相同的结果和“九城”。

的映射是:

"my_name_for_sug": { 
     "type": "completion" 
     ,"analyzer": "ik_max_word" 
     ,"search_analyzer": "ik_max_word" 
     ,"payloads": true 
     ,"preserve_separators": false 
    } 

其中ik_max_word是中国特有的分析仪,它可以做标准分析器的工作。

由于

回答

0

弹性Suggesters自动取消重复的相同的输出(至少直到2.X)。我还没有试用过5.x,并且在那里有一些提示器的变化。 这个问题似乎是你的索引分析器,它是索引你的文档,所以:

"text" : "Nine West", "text" : "Nine West ", "text" : "NINE WEST", "text" : "NINE WEST ", 是不完全一样的。你需要使用一个分析器来索引它们,这个分析器可以降低这些标记,并去除额外的空间等。 一旦你这样做,你应该得到解除重复输出的建议,就像你想要的。

相关问题