Elasticsearch odpovídající prvek v poli

0

Otázka

Uvedeny tyto údaje:

[
  {
    "tags": [
      "food"
    ]
  },
  {
    "tags": [
      "food features"
    ]
  }
]

A index mapování

{
  "mappings": {
    "properties": {
      "tags": {
        "type": "text",
        "fields": {
          "keyword": {
            "type": "keyword",
            "ignore_above": 256
          }
        }
      }
    }
  }
}

Jak mohu vytvořit dotaz, který vrací uzavřeno tagy [jídlo] a [jídlo funkce] když jsem hledala, [jídlo] tag, ale když jsem se hledat jídlo funkce tag, pouze [jídlo funkce] tag je vrátil? Díky.

elasticsearch
2021-11-22 08:49:00
1

Nejlepší odpověď

1

A prefix dotaz na tags.keyword pole může dělat práci:

{
  "query": {
    "prefix": {
      "tags.keyword": "food"
    }
  }
}
2021-11-22 09:12:26

Díky. Ale v případě indexu s dokumentem s tagy: [jídlo funkce], toto řešení nefunguje.
Anh Ho Phi Duc

Nejsem si jistý, co máte na mysli. Můžete aktualizovat vaši otázku s vzorek dokumentu a dotazu myslíš, že nebude fungovat?
Val

V jiných jazycích

Tato stránka je v jiných jazycích

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................