我在elasticsearch中存储了用于自动建议的句子。
格式:
{
"text": "what is temperature in chicago"
}
它正确建议了w或wha或键入的内容。但我想知道是否有什么方法可以从elasticsearch中获取大多数搜索语句。
答案 0 :(得分:0)
听起来像您需要的是terms聚合:
您的请求正文应如下所示:
{
"query": {
//your query
},
"aggs": {
"common" : {
"terms" : { "field" : "text.keyword", "size": 20 }
}
}
}
答案 1 :(得分:0)
如果我正确地回答了您的问题,那么您希望在输入查询时完成最常见的搜索,则可以实现一个简单的解决方案。 只需跟踪用户最终选择的内容(ES文档),然后将其计数器加1即可保持_id的映射。 运行批处理系统/同步/索引ES数据中的该数据将在您的数据中具有计数器值。 在给出建议(即按计数字段排序)时使用此功能。 随着用户开始使用,这将开始正常工作。 您的ES文档看起来像这样。
{ "text":"what is temperature in chicago",
"count":10
}
我建议这是一个非常原始的解决方案,可以有很多,但是很不错。