我正在使用Elasticsearch 1.1.0并尝试在名为text
的字段中检索前10个术语
我尝试过以下操作,但它返回了所有文件:
{
"query": {
"match_all": {}
},
"facets": {
"text": {
"terms": {
"field": "text",
"size": 10
}
}
}
}
修改
以下是返回结果的示例:
{
"took": 2,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
},
"hits": {
"total": 2747,
"max_score": 1,
"hits": [
{
"_index": "index_name",
"_type": "type_name",
"_id": "621637640908050432",
"_score": 1,
"_source": {
"metadata": {
"result_type": "recent",
"iso_language_code": "en"
},
"in_reply_to_status_id_str": null,
"in_reply_to_status_id": null,
"created_at": "Thu Jul 16 11:08:57 +0000 2015",
.
.
.
.
我做错了什么?
感谢。
答案 0 :(得分:2)
首先,不要使用facets
。它们已被弃用。即使您使用旧版Elasticsearch,也请切换到聚合。引用文档:
分面搜索是指通过以下方式探索大量数据的方法 显示有关数据的各种分区的摘要以及稍后的摘要 允许将导航范围缩小到特定分区。
在Elasticsearch中,facets也是允许的功能的名称 计算这些摘要。 facets已被聚合所取代 在Elasticsearch 1.0中,它是facets的超集。
请改用此查询:
POST /your_index/your_type/_search?search_type=count
{
"aggs" : {
"text" : {
"terms" : {
"field" : "text",
"size" : 10
}
}
}
}
这样可以正常使用
答案 1 :(得分:0)
试试这个:
GET /index_name/type_name/_search?search_type=count
{
"query": {
"match_all": {}
},
"facets": {
"text": {
"terms": {
"field": "text",
"size": 10
}
}
}
}