Rad*_*a.S 6 search full-text-search elasticsearch
我使用完成建议器自动完成..这些是我的文件
/* doc 1 */
{
    Title: CineMAX: Inorbit Mall, Cyberabad
    Suggest: {
        input: [
            CineMAX:
            Inorbit
            Mall
            Cyberabad
            CineMAX: Inorbit Mall, Cyberabad
        ]
        output: CineMAX: Inorbit Mall, Cyberabad
        payload: {
        ....
        }
        weight: 1
    }
}
/* doc 2 */
{
    Title: INOX: Kolkata
    Suggest: {
        input: [
            INOX:
            Kolkata
            INOX: Kolkata
        ]
        output: INOX: Kolkata 
        payload: {
            ....
        }
        weight: 1
    }
}
我使用完成查询如下
{
    "suggestion":{
       "text":"inox",
       "completion":{
           "field":"Suggest",
           "fuzzy":{
               "edit_distance":1,
               "transpositions":true,
               "prefix_length":1,
               "min_length":4
           }
       }
    }       
}
但在这里我得到的输出为
我想更优先考虑完全匹配..所以我想要 INOX:加尔各答在顶部..
我已经使用php explode()拆分了标题..所以我也可以匹配中间的单词..我不知道如何提高标题中的特定单词..Plz帮助我..在此先感谢
小智 1
您可以尝试运行两个完成查询,如下所示:
{
    "text": "inox",
    "suggestion_not_fuzzy": {
       "completion": {
           "field": "Suggest"
       }
    },
    "suggestion_fuzzy": {
       "completion": {
           "field": "Suggest",
           "fuzzy": {
               "edit_distance": 1,
               "transpositions": true,
               "prefix_length": 1,
               "min_length": 4
           }
       }
    }
}
然后尝试从“suggestion_not_fuzzy”获取结果,如果为空则回退到“suggestion_fuzzy”
| 归档时间: | 
 | 
| 查看次数: | 795 次 | 
| 最近记录: |