2017-08-15 53 views
1

看起来像弹性建议选项不会返回我所期望的。我想这是关于错误的参数,但我没有看到它。弹性搜索建议操作不会返回所有可能的建议

如果body包含“TOURNAMENT”之类的词,并且如果我为“TOURNAME”运行建议api,那么我会将“TOURNAMENT”作为建议。但是,如果我为“TOURNA”运行相同的API,我不会将“TOURNAMENT”作为建议。

预期的行为:

{ 
    "size": 0, 
    "suggest" : { 
      "my-sugg": { 
       "text" : "TOURNAME", 
       "term": { 
        "field" : "body", 
        "min_word_length" : "3" 

      } 
     } 
    } 
} 

我得到了预期的结果

"my-sugg": [ 
      { 
       "text": "tourname", 
       "offset": 0, 
       "length": 8, 
       "options": [ 
        { 
         "text": "tournament", 
         "score": 0.75, 
         "freq": 60 
        } 
       ] 
      } 

不期望的行为:

如果我跑完全相同的API与上面

"my-sugg": { 
      "text" : "TOURNA": 




"suggest": { 
     "my-sugg": [ 
      { 
       "text": "tourna", 
       "offset": 0, 
       "length": 6, 
       "options": [ 
        { 
         "text": "tour’s", 
         "score": 0.6666666, 
         "freq": 5 
        }, 
        { 
         "text": "tour's", 
         "score": 0.6666666, 
         "freq": 3 
        }, 
        { 
         "text": "tour", 
         "score": 0.5, 
         "freq": 34 
        }, 
        { 
         "text": "turn", 
         "score": 0.5, 
         "freq": 2 
        } 
       ] 
      } 
     ] 

我g错误的结果。我想获得“赛事”作为一个可能的建议。任何线索?

回答

0

我想你可能与completion suggester被混合起来term suggester

第一个允许你这样做did you mean功能,提示类似的术语,其中第二个允许你实现search as you type的功能。我认为这就是你在这里之后。