建议者(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)的主要内容,如果未能解决你的问题,请参考以下文章