Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Search 增强完成建议器的输入字段_Search_Full Text Search_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch - Fatal编程技术网 elasticsearch,Search,Full Text Search,elasticsearch" /> elasticsearch,Search,Full Text Search,elasticsearch" />

Search 增强完成建议器的输入字段

Search 增强完成建议器的输入字段,search,full-text-search,elasticsearch,Search,Full Text Search,elasticsearch,我正在使用自动完成的完成提示。。这些是我的文件 /* doc 1 */ { Title: CineMAX: Inorbit Mall, Cyberabad Suggest: { input: [ CineMAX: Inorbit Mall Cyberabad CineMAX: Inorbit Mall, Cyberabad ]

我正在使用自动完成的完成提示。。这些是我的文件

/* 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
           }
       }

    }       
}
但这里我得到的输出是

  • CineMAX:Inorbit Mall,赛伯拉巴德
  • INOX:加尔各答
  • 我想优先考虑精确匹配。。所以我想把INOX:Kolkata排在榜首

    我已经使用php explode()拆分了标题。。所以我也可以匹配中间词。我不知道如何提高标题中的特定词。请帮助我。。
    提前感谢

    您可以尝试运行以下两个完成查询:

    {
        "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\u not\u fuzzy”中获得结果,如果为空,则返回到“suggestion\u fuzzy”

    您想要的是为标题最短的文档赋予更多权重。如果有两个文档与您的查询相匹配,则标题最短的文档意味着信息较少的文档仍被找到,因此必须获得更高的分数

    您可以在索引时设置:

    weight = 1000 - number_of_characters_of_document_title (1000 or any other number : was just trying to have a positive weight)
    

    在此索引上设置了哪些映射和分析器?