Query_string on nested object


(Fabien Sarlat) #1

Bonjour !

J' ai un soucis dans ma recherche sur des nested objects :smiley:

Field :

 
"listSecteurs":
{
    "type" : "nested",
    "include_in_parent": true,
    "properties" : 
    {
        "secteurName" : {"type": "string", "analyzer": "analyzerFr"},
        "secteurExp" : {"type": "integer"}
    }
},

Les valeurs :

 "listSecteurs": [
    {
      "secteurName": "Ferroviaire",
      "secteurExp": "4"
    },
    {
      "secteurName": "qwr",
      "secteurExp": "3"
    }
],

La recherche (via l' api php) :

 
 $params = [
     'index' => 'index-fr',
     'type' => 'candidat',
     'body' => [
         'size' => 20,
         'query' => [
             'query_string' => [
                 'analyze_wildcard' => true,
                 'default_operator' => 'AND',
                 'query' => [
                     'fields' => [ 'listSecteurs'  ],
                     'query' => qwr
                 ]
             ]
         ]
     ]
 ];
 

Et la recherche ne le trouve pas :smile:


(David Pilato) #2

Si tu utilises l'outil pour formater plutĂŽt que l'outil pour citer, ton indentation sera correcte.
Si tu peux Ă©diter c'est mieux.

Essaye de changer le champ dans lequel tu cherches par secteurName pour voir.


(Fabien Sarlat) #3

Trouvé !

"query": {
    "nested": {
      "path" : ["listSecteurs", "listCompetences"],
      "query": {
        "query_string": {
          "fields": ["listSecteurs.secteurName", "listCompetences.competenceName"],
          "query": "Industrie pharmaceutique"
        }
      }
    }
  }

Le soucis, c'est que j'ai des champs nested object, mais j'ai aussi des champs simple.
Et je ne vois pas comment combiner la recherche dans des nested objetcts et les champs simple (avec une query string)


(David Pilato) #4

Tu ne peux pas avec une query string query.


(system) #5