在Elasticsearch中如何按查询分组?

时间:2018-07-12 01:42:25

标签: elasticsearch wikipedia

我正在一个项目上,我想查询Wikipedia数据库,以便带来一些结果...我正在使用Javascript应用程序和带有自我建议字段的Jquery,因为用户键入了单词列表....

要做到这一点,我需要在Elasticsearch中创建一个查询,方法是将所有类别(仅将它们纳入结果)。

键入SQL = SELECT表中的按字段分组的字段..

我该怎么做?

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

GET _search
{
  "query": {
    "query_string": {
      "fields": ["category"], 
      "query":  "*"
    }
  }
}

部分结果是:

{
  "took": 34,
  "timed_out": false,
  "_shards": {
    "total": 13,
    "successful": 13,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": 2117924,
    "max_score": 1,
    "hits": [
      {
        "_index": "ptwikionary_content",
        "_type": "page",
        "_id": "41115",
        "_score": 1,
        "_source": {
          "redirect": [],
          "template": [
            "Predefinição:-pt-",
            "Predefinição:cabeçalho-idioma",
            "Predefinição:nome categoria",
            "Predefinição:pt",
            "Predefinição:nome língua",
            "Predefinição:flex.pt",
            "Predefinição:link preto",
            "Predefinição:paroxítona",
            "Predefinição:gramática",
            "Predefinição:gramática/core",
            "Predefinição:etimologia",
            "Predefinição:escopo",
            "MediaWiki:Log"
          ],
          "content_model": "wikitext",
          "heading": [
            "Português",
            "Adjetivo",
            "Antônimo",
            "Etimologia"
          ],
          "source_text": """
={{-pt-}}=
==Adjetivo==
{{flex.pt|s=desumilde|p=desumildes}}
{{paroxítona|de|su|mil|de}}, {{gramática|c2g}}
# que não é [[humilde]]

===Antônimo===
* [[humilde]]

=={{etimologia|pt}}==
: {{escopo|Morfologia}} [[des-]] + [[humilde]].

[[Categoria:Adjetivo (Português)]]
""",
          "version_type": "external",
          "wiki": "ptwiktionary",
          "auxiliary_text": [
            "  Singular Plural Masculino desumilde desumildes Feminino"
          ],
          "language": "pt",
          "title": "desumilde",
          "version": 2491983,
          "external_link": [],
          "namespace_text": "",
          "namespace": 0,
          "text_bytes": 274,
          "incoming_links": 2,
          "text": "de.su.mil.de, comum aos dois géneros que não é humilde  humilde  (Morfologia) des- + humilde.",
          "category": [
            "!Entrada (Português)",
            "Polissílabo (Português)",
            "Paroxítona (Português)",
            "Entrada com etimologia (Português)",
            "Adjetivo (Português)"
          ],
          "defaultsort": false,
          "outgoing_link": [
            "desumilde",
            "desumildes",
            "des-",
            "feminino",
            "humilde",
            "masculino",
            "plural",
            "português",
            "singular",
            "Categoria:Português"
          ],
          "timestamp": "2018-03-29T21:53:29Z",
          "popularity_score": 0.000065252908710355
        }
      },
      {

我如何从Elasticsearch获取类别列表???键入Sql:

1 个答案:

答案 0 :(得分:0)

这并不困难。只需使用aggregation即可。这是一个示例:

GET _search
{
    "aggs" : {
        "categories" : {
            "terms" : { "field" : "category" }
        }
    }
}