Elasticsearch match élément dans le tableau

0

La question

Compte tenu de ces données:

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

Et l'indice de la cartographie

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

Comment puis-je créer une requête qui renvoie des balises correspondants [la nourriture] et [la nourriture fonctionnalités] quand j'ai cherché pour [la nourriture] tag, mais lorsque je recherche de nourriture caractéristiques tag, une seule [la nourriture fonctionnalités] balise est de retour? Merci.

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

La meilleure réponse

1

Un prefix requête sur le tags.keyword domaine pourrait faire le travail:

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

Merci. Mais dans le cas de l'indice avec un document avec des balises: [food propose Un], cette solution ne fonctionne pas.
Anh Ho Phi Duc

Pas sûr de ce que tu veux dire. Pouvez-vous mettre à jour votre question avec un exemple de document et de la requête que vous pensez ne fonctionne pas?
Val

Dans d'autres langues

Cette page est dans d'autres langues

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