Elasticsearch术语建议器不会返回完全匹配的结果

时间:2015-11-21 18:51:55

标签: elasticsearch search-suggestion

当我用

请求建议者时
{
    "my-title-suggestions-1": {
       "text": "tücher                ",
       "term": {
            "field": "name",
       }
    },
    "my-title-suggestions-2": {
       "text": "tüchers                ",
       "term": {
           "field": "name"
       }
    }
}

它返回

{
    "_shards": {
    "total": 5,
    "successful": 5,
    "failed": 0
    },
    "my-title-suggestions-1": [
    {
        "text": "tücher",
        "offset": 0,
        "length": 6,
        "options": []
    }
    ],
    "my-title-suggestions-2": [
    {
        "text": "tüchers",
        "offset": 0,
        "length": 7,
        "options": [
            {
                "text": "tücher",
                "score": 0.8333333,
                "freq": 6
            }
        ]
    }
    ]
}

我想知道为什么它不能与第一个建议者完全匹配? 第二个建议者显然有这个结果。

我可以添加其他可以解决此问题的选项吗?

编辑: 最小的映射就是这个......

{
"name" : {
        "analyzer" : "standard",
        "type" : "string"
    }
}

2 个答案:

答案 0 :(得分:1)

我不认为你可以这样做,我不确定你为什么要在suggestions中完全匹配,毕竟它们是“建议”。

通常它们用于检查拼写错误。它会为您提供类似的候选建议,并且对于您输入的单词,edit distance为2。

答案 1 :(得分:1)

添加@ ChintanShah25所说的内容:根据https://www.elastic.co/guide/en/elasticsearch/reference/2.0/search-suggesters-term.html(参见suggest_mode),默认情况下,术语建议者将会出现:

  

仅针对不在索引中的建议文字术语提供建议。