建议者(Suggesters)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了建议者(Suggesters)相关的知识,希望对你有一定的参考价值。

Suggesters

  建议功能基于通过建议者提供的文本暗示相似的术语。部分建议功能仍在开发中。

  建议请求部分与_search请求中的查询部分一起定义。

  注意:_suggest端点已被弃用,建议通过_search端点使用suggest。在5.0中,_search端点已经过优化,仅用于suggest搜索请求。

POST twitter/_search
{
  "query" : {
    "match": {
      "message": "tring out Elasticsearch"
    }
  },
  "suggest" : {
    "my-suggestion" : {
      "text" : "trying out Elasticsearch",
      "term" : {
        "field" : "message"
      }
    }
  }
}

  每个请求可以指定几个建议。每个建议用任意名称标识。在下面的例子中,请求两个suggestion。my-suggest-1和my-suggest-2 suggestions 使用term suggester,但是有不同的text。

POST _search
{
  "suggest": {
    "my-suggest-1" : {
      "text" : "tring out Elasticsearch",
      "term" : {
        "field" : "message"
      }
    },
    "my-suggest-2" : {
      "text" : "kmichy",
      "term" : {
        "field" : "user"
      }
    }
  }
}

  以下suggest响应示例包括对my-suggest-1和my-suggest-2的suggestion响应。每个suggest part 都包含条目。每个条目实际上是来自suggest text的令牌,并且包含suggest条目文本,suggest text中的原始起始偏移量和长度以及是否找到任意数量的选项。

{
  "_shards": ...
  "hits": ...
  "took": 2,
  "timed_out": false,
  "suggest": {
    "my-suggest-1": [ {
      "text": "tring",
      "offset": 0,
      "length": 5,
      "options": [ {"text": "trying", "score": 0.8, "freq": 1 } ]
    }, {
      "text": "out",
      "offset": 6,
      "length": 3,
      "options": []
    }, {
      "text": "elasticsearch",
      "offset": 10,
      "length": 13,
      "options": []
    } ],
    "my-suggest-2": ...
  }
}

  每个选项数组包含一个选项对象,其中包含suggest text,其文档频率和与suggest 条目文本相比较的得分。分数的含义取决于使用的suggester。术语suggester的得分是基于编辑距离。

Global suggest text

  为了避免重复suggest text,可以定义全局文本。在下面的示例中,suggest text在全局范围内定义,应用于my-suggest-1和my-suggest-2 suggestions。  

POST _search
{
  "suggest": {
    "text" : "tring out Elasticsearch",
    "my-suggest-1" : {
      "term" : {
        "field" : "message"
      }
    },
    "my-suggest-2" : {
       "term" : {
        "field" : "user"
       }
    }
  }
}

  上述示例中的suggest text也可以指定为suggestion 特定选项。suggestion级别上指定的suggest text将覆盖全局级别的suggest text。

 

原文地址:https://www.elastic.co/guide/en/elasticsearch/reference/5.4/search-suggesters.html

以上是关于建议者(Suggesters)的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法关闭代码片段中的命名建议?

第07章 改善用户搜索体验

VS Code Intellisense 一开始不建议片段

Android 片段和活动

编写代码片段的更简洁的方法

找到我的自定义代码片段 Xcode 6?