Elasticsearch 中如何按查询分组?

Rom*_*ues 4 wikipedia elasticsearch

我正在开发一个项目,我想查询维基百科数据库,这样我就可以带来一些结果...我正在使用 Javascript 应用程序和带有自我建议字段的 Jquery,当用户键入时,应该出现单词列表... 。

\n\n

为此,我需要在 elasticsearch 中创建一个查询,将所有类别且仅将它们带入结果中。

\n\n

键入 SQL = SELECT Field FROM Table Group By Field ..

\n\n

我该怎么做?

\n\n

我的测试是基本的并返回所有对象......

\n\n
GET _search\n{\n  "query": {\n    "query_string": {\n      "fields": ["category"], \n      "query":  "*"\n    }\n  }\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

部分结果为:

\n\n
{\n  "took": 34,\n  "timed_out": false,\n  "_shards": {\n    "total": 13,\n    "successful": 13,\n    "skipped": 0,\n    "failed": 0\n  },\n  "hits": {\n    "total": 2117924,\n    "max_score": 1,\n    "hits": [\n      {\n        "_index": "ptwikionary_content",\n        "_type": "page",\n        "_id": "41115",\n        "_score": 1,\n        "_source": {\n          "redirect": [],\n          "template": [\n            "Predefini\xc3\xa7\xc3\xa3o:-pt-",\n            "Predefini\xc3\xa7\xc3\xa3o:cabe\xc3\xa7alho-idioma",\n            "Predefini\xc3\xa7\xc3\xa3o:nome categoria",\n            "Predefini\xc3\xa7\xc3\xa3o:pt",\n            "Predefini\xc3\xa7\xc3\xa3o:nome l\xc3\xadngua",\n            "Predefini\xc3\xa7\xc3\xa3o:flex.pt",\n            "Predefini\xc3\xa7\xc3\xa3o:link preto",\n            "Predefini\xc3\xa7\xc3\xa3o:parox\xc3\xadtona",\n            "Predefini\xc3\xa7\xc3\xa3o:gram\xc3\xa1tica",\n            "Predefini\xc3\xa7\xc3\xa3o:gram\xc3\xa1tica/core",\n            "Predefini\xc3\xa7\xc3\xa3o:etimologia",\n            "Predefini\xc3\xa7\xc3\xa3o:escopo",\n            "MediaWiki:Log"\n          ],\n          "content_model": "wikitext",\n          "heading": [\n            "Portugu\xc3\xaas",\n            "Adjetivo",\n            "Ant\xc3\xb4nimo",\n            "Etimologia"\n          ],\n          "source_text": """\n={{-pt-}}=\n==Adjetivo==\n{{flex.pt|s=desumilde|p=desumildes}}\n{{parox\xc3\xadtona|de|su|mil|de}}, {{gram\xc3\xa1tica|c2g}}\n# que n\xc3\xa3o \xc3\xa9 [[humilde]]\n\n===Ant\xc3\xb4nimo===\n* [[humilde]]\n\n=={{etimologia|pt}}==\n: {{escopo|Morfologia}} [[des-]] + [[humilde]].\n\n[[Categoria:Adjetivo (Portugu\xc3\xaas)]]\n""",\n          "version_type": "external",\n          "wiki": "ptwiktionary",\n          "auxiliary_text": [\n            "  Singular Plural Masculino desumilde desumildes Feminino"\n          ],\n          "language": "pt",\n          "title": "desumilde",\n          "version": 2491983,\n          "external_link": [],\n          "namespace_text": "",\n          "namespace": 0,\n          "text_bytes": 274,\n          "incoming_links": 2,\n          "text": "de.su.mil.de, comum aos dois g\xc3\xa9neros que n\xc3\xa3o \xc3\xa9 humilde  humilde  (Morfologia) des- + humilde.",\n          "category": [\n            "!Entrada (Portugu\xc3\xaas)",\n            "Poliss\xc3\xadlabo (Portugu\xc3\xaas)",\n            "Parox\xc3\xadtona (Portugu\xc3\xaas)",\n            "Entrada com etimologia (Portugu\xc3\xaas)",\n            "Adjetivo (Portugu\xc3\xaas)"\n          ],\n          "defaultsort": false,\n          "outgoing_link": [\n            "desumilde",\n            "desumildes",\n            "des-",\n            "feminino",\n            "humilde",\n            "masculino",\n            "plural",\n            "portugu\xc3\xaas",\n            "singular",\n            "Categoria:Portugu\xc3\xaas"\n          ],\n          "timestamp": "2018-03-29T21:53:29Z",\n          "popularity_score": 0.000065252908710355\n        }\n      },\n      {\n
Run Code Online (Sandbox Code Playgroud)\n\n

我如何从elasticsearch获取类别列表???类型 SQL:

\n

Diy*_*kir 5

为此使用聚合。这是一个例子:

GET _search
{
    "aggs" : {
        "categories" : {
            "terms" : { "field" : "category" }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)